Docker - Comandos Basicos
- EN
- PT
Table of Contents
Conheça os principais comandos do Docker que utilizamos praticamente todos os dias.
#
Introdução
O Docker é a ferramenta mais utilizada para gerenciamento de containers atualmente. Uma das coisas que chamam a atenção ao começar a estudar Docker é que seus comandos seguem uma lógica, que se bem estudada facilita o entendimento de como gerenciar melhor nossos containers.
#
Entendo o padrão
Praticamente todos os comandos do Docker seguem o mesmo padrão:
docker OBJETO AÇÃO [opções]
Onde:
Objeto é o que queremos gerenciar, por exemplo: imagens, redes, volumes, etc
Ação é o verbo, o que queremos fazer, por exemplo: ls, rm, run, inspect, start, stop, etc
Opções são auxiliares dos comandos, por exemplo, o comando docker container ls lista os containers em execução, porém, se adicionarmos a opção (ou flag) -a a saída do comando irá listar todos os containers, inclusive os que estão parados, exemplo: docker container ls -a.
#
Comandos de containers
Containers são as instancias em execucao criadas a partir de uma imagem. No dia a dia, estes são os comandos mais usados:
# Lista containers em execucao
docker container ls
# Lista todos os containers (inclusive parados)
docker container ls -a
# Cria e inicia um container
docker container run -d --name meu-nginx -p 8080:80 nginx
# Para um container em execucao
docker container stop meu-nginx
# Inicia um container parado
docker container start meu-nginx
# Remove um container parado
docker container rm meu-nginx
# Mostra detalhes tecnicos de um container
docker container inspect meu-nginx
# Exibe logs do container
docker container logs meu-nginx
Atalhos equivalentes muito comuns:
docker ps # equivale a docker container ls
docker rm <id> # equivale a docker container rm <id>
#
Comandos de imagens
Imagens são os “moldes” usados para criar containers. Também seguem o mesmo padrão:
# Lista imagens locais
docker image ls
# Baixa uma imagem do registry
docker image pull nginx:latest
# Constroi uma imagem a partir de um Dockerfile
docker image build -t minha-api:1.0 .
# Remove uma imagem
docker image rm nginx:latest
# Mostra histórico de camadas de uma imagem
docker image history nginx:latest
# Mostra detalhes técnicos da imagem
docker image inspect nginx:latest
Atalhos equivalentes:
docker images # equivale a docker image ls
docker rmi <imagem> # equivale a docker image rm <imagem>
#
Comandos de volumes e redes
Volumes e redes sao recursos de apoio muito importantes para persistencia de dados e comunicacao entre containers.
# Volumes
docker volume ls
docker volume create dados-app
docker volume inspect dados-app
docker volume rm dados-app
# Redes
docker network ls
docker network create minha-rede
docker network inspect minha-rede
docker network rm minha-rede
#
Comandos de limpeza
Com o tempo, sobram recursos não usados no ambiente. Estes comandos ajudam na manutenção:
# Remove containers parados
docker container prune
# Remove imagens sem uso
docker image prune
# Remove volumes nao utilizados
docker volume prune
# Remove redes nao utilizadas
docker network prune
# Limpeza geral (use com cuidado)
docker system prune -a
#
Fluxo pratico no dia a dia
Um fluxo simples e comum:
- Ver o que esta rodando:
docker container ls - Ver recursos locais:
docker image ls,docker volume ls,docker network ls - Subir um servico:
docker container run ... - Validar logs e estado:
docker container logs ...edocker container inspect ... - Encerrar e limpar quando necessario:
docker container stop,docker container rm,docker * prune
#
Conclusão
Quando você entende o padrão docker OBJETO ACAO [opcoes], aprender novos comandos fica muito mais fácil. Em vez de decorar tudo, você passa a raciocinar sobre o que deseja gerenciar e qual ação deseja executar.
Esse padrao vale para praticamente todo o ecossistema Docker e acelera muito o trabalho no dia a dia.