- 👶 exemplo:
- criar container da imagem nginx,
- nome nginx1,
- modo detach,
- limitando esse container a utilizar somente 512 MB de RAM,
- limitando a utilizar somente 50% do CPU,
- mapeia volume (de nome aleatorio é hash) na minha porta host pela porta do container,
- expor a minha porta host 8080 pela 80 do container:
docker container run --name nginx1 -d -m 512M -c=".5" -v <host>:<container> -p 8080:80 nginx
- volumes:
- tipo bind: fazer um diretorio atual ser montado dentro do container:
docker container run --mount type=bind,src=</diretorio a ser copiado para conteiner>,dst=/<pasta destino no container>
- tipo volume: o diretorio do "/var/lib/docker/volumes/<nome do arquivo a ser copiado" sera o volume de dentro do conteiner:
docker container run --mount type=bind,src=</diretorio a ser copiado para conteiner>,dst=/<pastadestinonocontainer>
- comandos gerais a partir do volume:
docker volume ps/inspect/rm
- ✍️ executar container em modo interativo da linha de comando
docker container exec -it <container ID ou nome> bash
- 👀 checar quais conteiners running:
docker ps
- 👀 checar TODOS conteiners independente de running:
docker ps -a
- 👀 checar status container:
docker status <container ID ou nome>
- ⏸️
▶️ startar / stop container:
docker container start/stop <container ID ou nome>
- 💀 deletar container:
docker rm <nome container ou id>
- 💀 deletar TODOS containers que não estão em uso:
docker container prune
- 💀 deletar TODOS containers:
docker rm $(docker ps -qa)
- ✍️ acessar container:
docker attach <conteiner ID>
- 🔱 versionar container:
docker commit <conteiner ID> <nome da imagem>:<tag>
- 👀 checar todas imagens:
docker images
- 💀 deletar imagem:
docker rmi <nome imagem ou id>
- 💀 deletar TODAS imagens que não estão em uso:
docker image prune
- 💀 deletar TODAS imagens(msm se estiver sendo usada):
docker rmi $(docker images -q) -f
- 💱 retagear imagem existente:
docker image tag <nome da imagem>:<TAG>
- 👶 criar imagem com a tag=<>, dentro da pasta com Dockerfile:
docker build -t <usuario dockerhub/nome da sua imagem> .
- ☝️ na pasta com o arquivo docker_compose.yaml:
docker compose up
🤔 toda documentação pelo comando:
docker --help
- iniciar vai gerar um leader e gerar um token:
docker swarm init
- vai ser gerado um comando para adicionar worker nodes,
- esse comando deve ser adicionado em cada maquina,
- mas para ser adicionado,
- deve instalar antes docker pelo curl, - e depois com sudo -su mudar nome do hostname:
curl -fsSL <.site docker...> | bash
hostname <nome do host mostrado no docker node ls do Leader>
docker swarm join <token enorme exibido do Leader>
- obs: mínimo de 1 cluster, numero impar para nao derrubar cluster: mais de 50% cluster ativos, sistema eleição
- obs:dentro do cluster qualquer ação binda o cluster todo
- o Leader permite que outros nós possam virar/desvirar Leader:
docker node promote/demote <nome node>
- adicionar manager: primeiro precisa gerar o token a ser colado no nó vazio, faça na maquina Leader:
docker swarm join-token manager
- adicionar worker: primeiro precisa gerar o token a ser colado no nó vazio, faça na maquina worker:
docker swarm join-token worker
- services:
docker service create --name <name> --replicas/--help
docker service
... ps/inspect/scale/rm/rollback/update/prune
- network:
docker network create -d overlay <name>
🤔 toda documentação pelo comando:
docker --help