Guia de Referência Rápida do Docker

Alguns parâmetros frequentes de comandos do Docker

Conteúdo da página

Aqui está uma folha de referência do Docker abrangendo os comandos mais importantes e conceitos, desde a instalação até a execução de contêineres e limpeza:

docker logo

Este guia faz parte do Ferramentas para Desenvolvedores: O Guia Completo para Fluxos de Trabalho Modernos.

Instalação

No Ubuntu

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker

Instalação do Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
``").

## Comandos Gerais do Docker
### Versão e Informações do Sistema
```bash
docker version          # Exibe as versões do CLI e do daemon do Docker
docker system info      # Lista dados sobre o ambiente Docker
docker help             # Visualiza o índice de ajuda
docker <command> --help # Visualiza informações de ajuda para um comando específico

Login e Logout

docker login            # Fazer login no Docker Hub
docker logout           # Sair do Docker Hub

Gerenciamento de Imagens

Listar Imagens

docker images           # Lista todas as imagens
docker images -a        # Lista todas as imagens, incluindo imagens intermediárias

Baixar Imagens

docker pull <image-name:version> # Baixar uma imagem do Docker Hub

Construir Imagens

docker build -t <image-name> . # Construir uma imagem a partir do Dockerfile no diretório atual
docker build -f <Dockerfile-path> -t <image-name> . # Construir uma imagem a partir de um Dockerfile específico
docker build --build-arg foo=bar . # Construir uma imagem com argumentos de build
docker build --pull . # Baixar versões atualizadas de imagens referenciadas nas instruções FROM
docker build --quiet . # Construir uma imagem sem emitir saída

Etiquetar e Enviar Imagens

docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>

Remover Imagens

docker rmi <image-name>        # Remove uma imagem específica
docker image prune             # Remove imagens não utilizadas
docker image prune -a          # Remove todas as imagens não utilizadas

Remover imagens órfãs (dangling)

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Remover etiqueta de imagem

docker rmi repository/image-name:tag

Gerenciamento de Contêineres

Executar Contêineres

docker run -itd --name <container-name> <image-name> # Executa um contêiner em modo detached
docker run -it -p <host-port>:<docker-port> <image-name> # Executa um contêiner com mapeamento de portas
docker run -it --name <container-name> <image-name> # Executa um contêiner interativamente

Listar Contêineres

docker ps                  # Lista contêineres em execução
docker ps -a               # Lista todos os contêineres
docker ps -s               # Lista contêineres em execução com uso de CPU e memória

Iniciar, Parar e Reiniciar Contêineres

docker start <container-name>   # Inicia um contêiner parado
docker stop <container-name>    # Para um contêiner em execução
docker restart <container-name> # Reinicia um contêiner

Remover Contêineres

docker rm <container-name>      # Remove um contêiner parado
docker rm -f <container-name>   # Remove forçadamente um contêiner
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Remove todos os contêineres

Remover todos os contêineres parados

docker container prune

Anexar a Contêineres

docker attach <container-name>  # Anexa-se a um contêiner em execução
docker exec -it <container-name> bash # Executa um comando em um contêiner em execução interativamente

Inspeccionar Contêineres

docker inspect <container-name> # Inspecciona um contêiner
docker logs <container-name>    # Visualiza os logs de um contêiner
docker port <container-name>    # Mostra os mapeamentos de porta de um contêiner

Gerenciamento de Rede

docker network ls            # Lista todas as redes
docker network create <network-name> # Cria uma nova rede
docker network rm <network-name>    # Remove uma rede

Gerenciamento de Volumes

docker volume ls             # Lista todos os volumes
docker volume create <volume-name> # Cria um novo volume
docker volume rm <volume-name>    # Remove um volume
docker run -v <host-path>:<container-path> <image-name> # Monta um volume

Docker Compose

Comandos Básicos

docker-compose up           # Inicia os serviços definidos em docker-compose.yml
docker-compose up -d        # Inicia os serviços em modo detached
docker-compose down         # Para e remove os serviços
docker-compose ps           # Lista os serviços em execução
docker-compose logs         # Visualiza os logs dos serviços
docker-compose start        # Inicia os serviços
docker-compose stop         # Para os serviços
docker-compose pause        # Pausa os serviços
docker-compose unpause      # Retoma os serviços

Comandos de Dockerfile

Construir Imagem a partir do Dockerfile

docker build -t <image-name> <Dockerfile-path> # Construir uma imagem a partir de um Dockerfile

Exemplo de Dockerfile

FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]

Segurança e Segredos

Segredos do Docker

docker secret create <secret-name> <file> # Criar um segredo
docker secret ls                         # Listar todos os segredos
docker secret rm <secret-name>          # Remover um segredo

Segurança do Docker

  • Use segredos do Docker para gerenciar centralmente dados sensíveis e transmiti-los com segurança aos contêineres.
  • Os segredos são criptografados durante a transmissão e em repouso em um swarm do Docker.

Limpeza

Remover Recursos Não Utilizados

docker system prune          # Remove dados não utilizados (imagens, contêineres, redes, volumes)
docker image prune           # Remove imagens não utilizadas
docker container prune       # Remove contêineres não utilizados
docker network prune         # Remove redes não utilizadas
docker volume prune          # Remove volumes não utilizados

Remover imagens sem etiqueta

Às vezes, após uma grande compilação, aparece uma imagem assim no comando docker images:

lot of untagged images

para remover essas imagens com tags :

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

o acima é antigo e incompatível. O parâmetro dangling=true é obsoleto. Use

docker system prune

ele perguntará:

WARNING! This will remove:
	- all stopped containers
	- all volumes not used by at least one container
	- all networks not used by at least one container
	- all dangling images

Você pode decidir dizer Sim a este aviso…

Esta folha de referência cobre os comandos e conceitos essenciais necessários para gerenciar contêineres Docker, imagens, redes, volumes e muito mais. Para uma visão mais aprofundada, consulte os guias detalhados e tutoriais disponíveis online.