-
Containers
docker run <image>
= cria um container segundo uma imagem, exista ela localmente ou não (consultar hub.docker)- flag
-d
= detached - mantem container rodando em background - flag
-it
= interative - mantem container rodando no console - flag
-p x:y
= seta porta para comunicação, sendo x a porta externa e y a porta do container - flag
--name <name>
= para dar um nome personalizado para um container - flag
--rm
= remove o container após execução - flag
--network <network>
= indica network a utilizar
- flag
docker start <container>
= roda container criado previamentedocker stop <container>
= para a execução de um containerdocker ps
= consulta os container em execução- flag
-a
= inclui no resultado também os containers parados
- flag
docker cp <name>:<path_in> <path_out>
= copia um arquivo de dentro de um container para foradocker top <container>
= consulta os processos rodando no containerdocker exec -it <container> bash
= permite abrir terminal interativo de container em execuçãodocker kill $(docker ps -q)
= para a execução de todos os containersdocker rm $(docker ps -a -q)
= para a execução de todos os containers e os remove
-
Imagens
docker build <path>
= cria uma imagem, path é onde o Dockerfile se encontra- flag
-t <name>:<tag>
= para dar nome e tag (opcional)
- flag
docker rmi <image>
= exclui uma imagem
-
Volumes
docker run -v <volume_name>:/<dir_container>
= cria um volume nomeado ou utiliza um volume já existente, dir_container contado desde do "workdir" do Dockerfiledocker run -v <dir_out>:/<dir_container>
= vincula um diretório externo como volume, dir_out é o caminho absoluto do diretório- flag
:ro
= cria volume somente leitura, flag vem colada logo atrás do identificador
- flag
docker volume create <name>
= para criar volume sem ser na criação de um container
-
Networks
docker network create <name>
= remove tudo quanto é imagem, container ou network não utilizadodocker network connect <rede> <container>
= conecta um conteiner a uma rededocker network disconnect <rede> <container>
= disconecta um conteiner de uma rededocker network inspect <rede>
= inspeciona uma rede
-
Compose
docker-compose up
= executa o composedocker-compose down
= derruba os containersdocker-compose ps
= lista containers gerenciados pelo compose- flag
-d
= detached - mantem container rodando em background
- flag
-
Geral
docker system prune
= remove tudo quanto é imagem, container ou network não utilizadodocker status
= consulta quantos recursos estão sendo alocados para os containersdocker login
= autentica com o hub dockerdocker logout
= desautentica com o hub dockerdocker push <repository>
= para subir uma imagem para o hub, o nome da imagem deve ser o mesmo do repositóriorepository:tag
= o versionamento é feito com a tag
docker pull <repository>
= para clonar uma imagem do hub, o nome da imagem deve ser o mesmo do repositóriodocker (container/image/volume) ls
= lista elementos, Bind Mounts não são listados.docker (container/image/volume) inspect <name>
= inspeciona o elementodocker (container/image/volume) prune
= remove o que não está sendo utilizadodocker (container/image/volume) rm <name>
= remove um elemento- flag
-f
= força a exclusão, caso o container esteja em execução
- flag
-
Container com MySQL
- flag
-e MYSQL_ALLOW_EMPTY_PASSWORD=True
nodocker run
= permite uso de senha vazia
Exemplos:
docker exec -it phpmessages_container bash
docker run -d -p 82:80 --name phpmessages_container -v phpvolume:/var/www/html/messages --rm phpmessages
docker build -t flaskapinetwork .
docker run -d -p 5000:5000 --name flask_api_container --network flasknetwork --rm flaskapinetwork
YAML
null
ou~
= representam o nuloTrue
ouOn
= representam verdadeiroFalse
ouOff
= representam falso- string pode ser declarada com ou sem aspas
[1, 2, 3]
ou (obj:
\n- item
) = formas de representar arrays{a: 1, b: 2, c: 3}
ou (obj:
\nkey: value
) = formas de representar dicionários/objetos
Setup Docker Swarm na AWS
sudo yum update -y
= atualiza a máquinasudo yum install docker
= instala dockersudo service docker start
= inicializa dockersudo usermod -a -G docker ec2-user
= vincula usuáriosudo docker swarm init
= inicia swarm- tag
--advertise-addr <IP>
= caso solicite por IP
- tag
sudo docker swarm leave
= interrompe swarm- tag
-f
= caso dê erro relacionado com Manager
- tag
Docker Swarm
docker node ls
= lista os nodes com seus statusdocker node rm <id>
= remove node do swarmdocker swarm join --token <TOKEN> <IP>:<PORTA>
= adiciona workersudo docker swarm join-token manager
= recupera o token
Services
-
docker service create --name <name> <image>
= subindo serviço--replicas <number>
= para incluir réplicas--network <name>
= para setar uma rede
-
docker service ls
= lista serviços -
docker service rm <name>
= lista serviços -
docker service inspect <id>
= inspeciona serviço -
docker service ps <id>
= confere container rodando o serviço serviço -
docker node update --availability drain <id>
= faz com que o serviço não receba mais ordens do manager -
docker node update --availability active <id>
= faz com que o serviço volte a receber ordens do manager -
docker service update --image <image> <service>
= atualiza imagem dos nodes com status active referentes a um dado serviço -
docker service update --network-add <network> <service>
= para setar uma rede para um serviço já criado -
docker network create --drive overlay <name>
= o tipo de rede para nodes do swarm é overlay
Compose com Swarm
docker stack deploy -c <file.yaml> <name>
= cria um serviço via composedocker service scale <name>=<number>
= replica o serviço para number máquinas
Kubernetes (modo imperativo)
kubectl create deployment <nome> --image=<imagem>
= cria deploymentkubectl get deployments
= lista deploymentskubectl describe deployments
= exibe informações detalhadas sobre os deploymentskubectl get pods
= lista podskubectl describe pods
= exibe informações detalhadas sobre os podskubectl config view
= lista configuração do kuberneteskubectl expose deployment <nome> --type=<tipo> --port=<port>
= criar um Service / expondo os pods--type=LoadBalancer
= tipo mais comum
kubectl get services
= lista serviceskubectl describe services
= exibe informações detalhadas sobre os serviceskubectl scale deployment/<NOME> --replicas=<NUMERO>
= aumenta ou diminui o número de pods para uma aplicaçãokubectl get rs
= lista as réplicas dos serviços rodando (desired, current, ready)kubectl set image deployment/<NOME> <CONTAINER>=<IMAGEM:TAG>
= atualiza a imagem de um containerkubectl rollout status deployment/<NOME>
= comando para verificar uma alteraçãokubectl rollout undo deployment/<NOME>
= comando para desfazer a alteraçãokubectl delete service <NOME>
= deleta o serviço (isso não deleta os pods)kubectl delete deployment <NOME>
= deleta o deployment
Kubernetes (modo declarativo)
- Chaves mais utilizadas
- apiVersion = versão utilizada da ferramenta
- kind = tipo do arquivo (Deployment, Service)
- metadata = descreve algum objeto inserindo chaves, tal como "name"
- replicas = número de réplicas de Nodes/Pods
- containers = definir as especificções de containers, tais como nome e imagem
- Comandos
kubectl apply -f <ARQUIVO>
= para executa o arquivo de deployment/servicekubectl delete -f <ARQUIVO>
= para deletar o deployment/service
- Trabalhando com Deployment e Service no mesmo arquivo
- Incluir
---
antes de cada um - Recomenda-se que o Service venha antes
- Incluir
Dica para terminal
Crtl + Shift + C
ouCrtl + Insert
em vez deCrtl + C
Crtl + Shift + V
ouShift + Insert
em vez deCrtl + V
- flag
-
Notifications
You must be signed in to change notification settings - Fork 0
caiohscruz/Curso-Docker-para-Desenvolvedores
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published