Pular para o conteúdo principal

João Senger

Docker - Comandos Basicos

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:

  1. Ver o que esta rodando: docker container ls
  2. Ver recursos locais: docker image ls, docker volume ls, docker network ls
  3. Subir um servico: docker container run ...
  4. Validar logs e estado: docker container logs ... e docker container inspect ...
  5. 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.