bashadvanced193 snippets

Docker: Comandos de Produção

Esqueça a configuração manual. Copie e cole os comandos para subir containers, limpar volumes e fazer deploy em tempo recorde.

Seções9
1

ℹ️ Informações Básicas

8 snippets

Use esta seção quando precisar verificar o status geral do Docker, as versões instaladas ou obter informações detalhadas sobre o sistema Docker e o uso de recursos.

Verificar Versão do Docker

Exibe a versão do cliente Docker instalada no seu sistema, útil para verificar a compatibilidade e o ambiente.

bash
docker --version

Informações Detalhadas do Sistema Docker

Fornece um resumo detalhado das informações do sistema Docker, incluindo o número de containers (rodando, pausados, parados), imagens, volumes, redes, e configurações do daemon.

bash
docker info

Informações Detalhadas do Sistema (Alternativo)

Similar ao `docker info`, este comando pode oferecer uma visão mais específica ou formatada das informações do sistema Docker, dependendo da versão e configuração.

bash
docker system info

Uso de Espaço em Disco pelo Docker

Mostra o uso de espaço em disco pelo Docker, detalhando o consumo por imagens, containers, volumes e cache de build, ajudando a identificar onde o espaço está sendo utilizado.

bash
docker system df

Versão do Cliente e Servidor Docker

Exibe as versões do cliente (CLI) e do servidor (daemon) Docker, permitindo verificar a comunicação e a compatibilidade entre eles.

bash
docker version

Eventos do Sistema Docker em Tempo Real

Transmite eventos em tempo real do daemon Docker, como criação, início, parada, e destruição de containers, imagens e volumes, útil para monitoramento contínuo.

bash
docker system events

Eventos do Sistema na Última Hora

Exibe eventos do daemon Docker ocorridos na última hora, útil para revisar atividades recentes do sistema e depurar problemas que surgiram recentemente.

bash
docker system events --since 1h

Limpar Dados Não Utilizados Mais Antigos que 24h

Remove dados não utilizados pelo Docker que foram criados há mais de 24 horas, como containers parados, imagens sem tag e cache de build, ajudando a liberar espaço de forma seletiva.

bash
docker system prune --filter until=24h
2

📦 Containers

20 snippets

Use esta seção quando estiver gerenciando o ciclo de vida de containers Docker, desde a execução e configuração até a parada, remoção e depuração. Essencial para o deploy e manutenção de aplicações.

Listar Containers em Execução

Lista todos os containers Docker que estão atualmente em execução, mostrando seus IDs, nomes, imagens, comandos, portas mapeadas e status.

bash
docker ps

Listar Todos os Containers (Incluindo Parados)

Lista todos os containers Docker, incluindo aqueles que estão parados ou foram encerrados (`-a` para "all").

bash
docker ps -a

Listar Apenas IDs de Containers

Lista apenas os IDs dos containers Docker que estão em execução, útil para encadear comandos ou scripts automatizados.

bash
docker ps -q

Listar Containers com Formato Personalizado

Lista containers em execução com um formato de tabela personalizado, exibindo apenas os nomes, status e portas mapeadas, permitindo uma visualização mais limpa e focada.

bash
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

Executar Container Mapeando Porta

Executa um novo container a partir da imagem `blueprint-backend` e mapeia a porta `3001` do host para a porta `3001` dentro do container (`-p` para "publish"), permitindo acesso externo ao serviço.

bash
docker run -p 3001:3001 blueprint-backend

Executar Container em Segundo Plano (Detached)

Executa um novo container em modo `detached` (segundo plano, `-d`), atribui o nome `backend` (`--name`) e mapeia a porta `3001` do host para a porta `3001` do container.

bash
docker run -d --name backend -p 3001:3001 blueprint-backend

Executar Container Interativo e Remover ao Sair

Executa um container da imagem `alpine` em modo interativo (`-i`) com um pseudo-TTY (`-t`), executando o comando `sh`. O container será automaticamente removido (`--rm`) ao ser encerrado.

bash
docker run -it --rm alpine sh

Executar Container com Variáveis de Ambiente

Executa um container da imagem `app` e define a variável de ambiente `NODE_ENV` como `production` (`-e` para "env"), útil para configurar o comportamento da aplicação dentro do container.

bash
docker run -e NODE_ENV=production app

Executar Container com Volume e Comando Específico

Executa um container da imagem `node`, montando o diretório de trabalho atual do host (`$(pwd)`) como `/app` dentro do container (`-v` para "volume") e definindo `/app` como o diretório de trabalho (`-w`). Em seguida, executa `npm install`.

bash
docker run -v $(pwd):/app -w /app node npm install

Executar Container com Política de Reinício Automático

Executa um container da imagem `app` e configura uma política de reinício automático (`--restart unless-stopped`), garantindo que o container será reiniciado automaticamente a menos que seja explicitamente parado.

bash
docker run --restart unless-stopped app

Executar Container Limitando Memória

Executa um container da imagem `app` e limita a quantidade de memória RAM que ele pode usar a 256 megabytes (`--memory`), útil para controle de recursos.

bash
docker run --memory="256m" app

Executar Container Limitando CPU

Executa um container da imagem `app` e limita o uso da CPU a 0.5 (equivalente a 50% de um núcleo de CPU) (`--cpus`), útil para controle de recursos.

bash
docker run --cpus="0.5" app

Parar um Container Específico

Envia um sinal SIGTERM para o container especificado, solicitando seu encerramento gracefully. Após um tempo limite, se o container não parar, um SIGKILL é enviado.

bash
docker stop container_name

Parar Todos os Containers em Execução

Para todos os containers Docker em execução, utilizando a saída de `docker ps -q` (que lista apenas os IDs dos containers rodando) como argumento para `docker stop`.

bash
docker stop $(docker ps -q)

Remover um Container Específico

Remove um container Docker específico. O container deve estar parado antes de ser removido, a menos que a flag `-f` (force) seja usada.

bash
docker rm container_name

Remover Todos os Containers (Rodando e Parados)

Remove todos os containers Docker, tanto os em execução quanto os parados, utilizando a saída de `docker ps -aq` (que lista todos os IDs) como argumento para `docker rm`.

bash
docker rm $(docker ps -aq)

Reiniciar um Container

Reinicia um container Docker em execução, parando-o e iniciando-o novamente.

bash
docker restart container_name

Pausar um Container

Pausa todos os processos dentro de um container em execução, suspendendo-o temporariamente sem encerrá-lo, liberando recursos da CPU mas mantendo a memória.

bash
docker pause container_name

Despausar um Container

Despausa um container que foi previamente pausado, permitindo que seus processos continuem a execução.

bash
docker unpause container_name

Forçar Parada de um Container (Kill)

Força a parada imediata de um container Docker enviando um sinal SIGKILL, sem esperar que ele encerre gracefuly. Use com cautela, pois pode resultar em perda de dados.

bash
docker kill container_name
3

🖼️ Imagens

18 snippets

Use esta seção quando estiver criando, gerenciando, listando ou limpando imagens Docker. Essencial para o desenvolvimento e distribuição de aplicações Dockerizadas.

Listar Imagens Docker Locais

Lista todas as imagens Docker armazenadas localmente, mostrando seus repositórios, tags, IDs e tamanhos.

bash
docker images

Listar Todas as Imagens (Incluindo Intermediárias)

Lista todas as imagens Docker, incluindo as camadas intermediárias (`-a` para "all"), que normalmente são ocultas e podem consumir espaço.

bash
docker images -a

Listar Imagens com Formato Personalizado

Lista imagens Docker com um formato de tabela personalizado, exibindo repositório, tag e tamanho, para uma visualização mais organizada e focada.

bash
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

Build Básico de Imagem Docker

Constrói uma imagem Docker a partir do `Dockerfile` localizado no diretório `./backend` e a taggeia com o nome `blueprint-backend` (`-t` para "tag").

bash
docker build -t blueprint-backend ./backend

Build de Imagem para Frontend

Constrói uma imagem Docker a partir do `Dockerfile` localizado no diretório `./frontend` e a taggeia com o nome `blueprint-frontend`.

bash
docker build -t blueprint-frontend ./frontend

Build de Imagem Sem Cache

Constrói uma imagem Docker a partir do `Dockerfile` no diretório atual, sem utilizar o cache de camadas (`--no-cache`), garantindo que todas as etapas sejam executadas do zero, e a taggeia como `app:latest`.

bash
docker build --no-cache -t app:latest .

Build de Imagem Multi-stage com Target Específico

Constrói uma imagem Docker a partir do `Dockerfile` no diretório atual, utilizando um estágio específico de build (`--target production`) definido no Dockerfile multi-stage, e a taggeia como `app:prod`.

bash
docker build --target production -t app:prod .

Build de Imagem com Argumentos de Build

Constrói uma imagem Docker a partir do `Dockerfile` no diretório atual, passando um argumento de build (`--build-arg NODE_ENV=production`) que pode ser usado dentro do Dockerfile durante o processo de build, e a taggeia como `app`.

bash
docker build --build-arg NODE_ENV=production -t app .

Build de Imagem com Progresso Detalhado

Constrói uma imagem Docker com uma saída de progresso detalhada e sem formatação especial (`--progress=plain`), útil para depuração em ambientes CI/CD ou quando a saída padrão não é um TTY.

bash
docker build --progress=plain -t app .

Build de Imagem com Squash de Camadas

Constrói uma imagem Docker e "achata" as camadas resultantes em uma única camada após a imagem base, reduzindo o número de camadas e, potencialmente, o tamanho final da imagem (`--squash`).

bash
docker build --squash -t app .

Build de Imagem com Labels (Metadados)

Constrói uma imagem Docker e adiciona um rótulo (label) `version=1.0` (`--label`) à imagem, útil para metadados, organização e filtragem.

bash
docker build --label version=1.0 -t app .

Remover uma Imagem Docker

Remove uma imagem Docker específica do armazenamento local. A imagem não pode estar em uso por nenhum container para ser removida.

bash
docker rmi image_name

Remover Todas as Imagens Locais

Remove todas as imagens Docker não utilizadas, utilizando a saída de `docker images -q` (que lista apenas os IDs das imagens) como argumento para `docker rmi`.

bash
docker rmi $(docker images -q)

Remover Imagens Órfãs (Dangling Images)

Remove imagens Docker que não estão associadas a nenhum container e não possuem tags (imagens "penduradas" ou "órfãs"), liberando espaço em disco.

bash
docker image prune

Remover Todas as Imagens Não Usadas (Incluindo Camadas Intermediárias)

Remove todas as imagens Docker não utilizadas, incluindo as camadas intermediárias (`-a` para "all"), que não são referenciadas por nenhuma imagem nomeada.

bash
docker image prune -a

Renomear/Taggear uma Imagem

Cria uma nova tag (`target:1.0`) para uma imagem existente (`source:latest`), permitindo referenciar a mesma imagem com nomes diferentes ou versões específicas.

bash
docker tag source:latest target:1.0

Enviar Imagem para Registro Remoto

Envia uma imagem Docker para um registro remoto (`registry.com/app:latest`), tornando-a disponível para outros usuários ou sistemas.

bash
docker push registry.com/app:latest

Puxar Imagem de Registro Remoto

Baixa uma imagem Docker de um registro remoto (`registry.com/app:latest`) para o armazenamento local do seu sistema.

bash
docker pull registry.com/app:latest
4

📊 Logs e Monitoramento

13 snippets

Use esta seção quando precisar depurar, monitorar o desempenho ou analisar problemas em containers Docker através de logs e estatísticas em tempo real.

Ver Logs de um Container

Exibe a saída de log padrão (stdout/stderr) de um container Docker específico, útil para depuração e monitoramento.

bash
docker logs container_name

Seguir Logs de um Container (Follow)

Exibe os logs de um container em tempo real, seguindo novas entradas (`-f` para "follow"), mantendo a conexão aberta e mostrando os logs à medida que são gerados.

bash
docker logs -f container_name

Ver Últimas N Linhas de Log

Exibe as últimas 50 linhas de log de um container específico (`--tail`), útil para uma rápida verificação de eventos recentes sem carregar todo o histórico.

bash
docker logs --tail 50 container_name

Ver Logs a Partir de um Período

Exibe os logs de um container gerados nas últimas 2 horas (`--since`), permitindo filtrar logs por período de tempo para focar em eventos recentes.

bash
docker logs --since="2h" container_name

Ver Logs com Timestamps

Exibe os logs de um container, adicionando um timestamp a cada linha de log (`--timestamps`), o que é útil para análise cronológica e correlação de eventos.

bash
docker logs --timestamps container_name

Estatísticas de Recursos em Tempo Real

Exibe um fluxo em tempo real de estatísticas de uso de recursos (CPU, memória, rede, I/O de disco) para todos os containers em execução, útil para monitoramento de desempenho e identificação de gargalos.

bash
docker stats

Estatísticas de Recurso de Container Específico

Exibe estatísticas de uso de recursos em tempo real para um container Docker específico, permitindo focar no desempenho de um único serviço.

bash
docker stats container_name

Processos em Execução no Container

Exibe os processos em execução dentro de um container Docker específico, similar ao comando `top` do Linux, útil para depuração e verificação de quais processos estão ativos.

bash
docker top container_name

Estatísticas de Recursos Estáticas

Exibe um instantâneo estático das estatísticas de uso de recursos para os containers em execução, sem o fluxo contínuo em tempo real (`--no-stream`), útil para capturas pontuais.

bash
docker stats --no-stream

Estatísticas de Recursos Formatadas

Exibe estatísticas de uso de recursos dos containers com um formato de tabela personalizado, mostrando o nome do container e o percentual de uso da CPU, para uma visualização concisa.

bash
docker stats --format "table {{.Container}}\t{{.CPUPerc}}"

Eventos Docker em Tempo Real

Transmite eventos em tempo real do daemon Docker, como criação, início, parada, e destruição de containers, imagens e volumes, útil para auditoria e automação.

bash
docker events

Inspecionar Detalhes de um Container

Exibe informações detalhadas de baixo nível sobre um container Docker específico em formato JSON, incluindo configurações de rede, volumes, status, metadados e histórico de eventos.

bash
docker inspect container_name

Inspecionar Detalhes de uma Imagem

Exibe informações detalhadas de baixo nível sobre uma imagem Docker específica em formato JSON, incluindo camadas, metadados, configurações de portas e variáveis de ambiente.

bash
docker inspect image_name
5

⚡ Execução e Interação

11 snippets

Use esta seção quando precisar interagir diretamente com containers em execução, executar comandos dentro deles, copiar arquivos entre o host e o container, ou gerenciar mapeamentos de portas e redes.

Acessar Shell Interativo no Container (Bash)

Executa o comando `bash` dentro de um container Docker em execução, alocando um pseudo-TTY (`-t`) e mantendo a entrada padrão aberta (`-i`) para interação, permitindo acesso ao shell do container.

bash
docker exec -it container_name bash

Acessar Shell Básico no Container (Sh)

Executa o comando `sh` (shell básico) dentro de um container Docker em execução em modo interativo com pseudo-TTY, útil quando `bash` não está disponível no container.

bash
docker exec -it container_name sh

Executar Comando Específico no Container

Executa um comando específico (`ls -la /app`) dentro de um container Docker em execução, sem necessidade de interação com um shell.

bash
docker exec container_name ls -la /app

Copiar Arquivo do Host para Container

Copia o arquivo `file.txt` do host para o diretório `/app/` dentro do container especificado (`container_name`).

bash
docker cp file.txt container_name:/app/

Copiar Arquivo/Diretório do Container para Host

Copia o diretório `logs` de dentro do container especificado (`container_name:/app/logs`) para o diretório local `./logs` no host.

bash
docker cp container_name:/app/logs ./logs

Ver Portas Mapeadas de um Container

Exibe os mapeamentos de portas para um container Docker específico, mostrando quais portas do host estão conectadas a quais portas do container.

bash
docker port container_name

Mapear Porta Específica ao Executar Container

Executa um container da imagem `nginx` e mapeia a porta `8080` do host para a porta `80` do container (`-p` para "publish"), permitindo acesso ao servidor web.

bash
docker run -p 8080:80 nginx

Mapear Portas Automaticamente ao Executar Container

Executa um container da imagem `nginx` e mapeia automaticamente todas as portas expostas no `Dockerfile` do container para portas aleatórias e não utilizadas no host (`-P` para "publish all").

bash
docker run -P nginx

Executar Comando como Usuário Root no Container

Executa o comando `bash` dentro de um container em execução como o usuário `root` (`-u`), útil para tarefas administrativas que requerem privilégios elevados.

bash
docker exec -u root container bash

Executar Comando em Segundo Plano no Container

Executa o comando `sleep 60` dentro de um container em execução em modo `detached` (segundo plano, `-d`), sem bloquear o terminal atual.

bash
docker exec -d container sleep 60

Executar Comando com Variáveis de Ambiente no Container

Executa um comando (`cmd`) dentro de um container em execução, passando uma variável de ambiente (`--env VAR=value`) que será disponível apenas para a execução desse comando.

bash
docker exec -it container --env VAR=value cmd
6

🧹 Limpeza e Manutenção

12 snippets

Use esta seção quando precisar liberar espaço em disco, remover recursos Docker não utilizados ou limpar o ambiente Docker para manter a eficiência e evitar o acúmulo de dados desnecessários.

Remover Dados Docker Não Usados

Remove todos os dados não utilizados pelo Docker, incluindo containers parados, redes não utilizadas e imagens penduradas, mas não volumes por padrão.

bash
docker system prune

Remover TODOS os Dados Docker Não Usados

Remove todos os dados não utilizados pelo Docker, incluindo containers parados, redes não utilizadas, imagens penduradas e todas as imagens sem tag (`-a` para "all").

bash
docker system prune -a

Remover Dados Não Usados Incluindo Volumes

Remove todos os dados não utilizados pelo Docker, incluindo volumes não referenciados por nenhum container (`--volumes`), além de containers parados, redes e imagens penduradas.

bash
docker system prune --volumes

Remover Containers Parados

Remove todos os containers Docker que estão parados, liberando recursos e espaço em disco.

bash
docker container prune

Remover Imagens Órfãs

Remove imagens Docker que não estão associadas a nenhum container e não possuem tags (imagens "penduradas" ou "órfãs").

bash
docker image prune

Remover Volumes Não Usados

Remove todos os volumes Docker que não estão sendo utilizados por nenhum container, liberando espaço em disco. Use com cautela para evitar perda de dados.

bash
docker volume prune

Remover Redes Não Usadas

Remove todas as redes Docker que não estão sendo utilizadas por nenhum container, liberando recursos de rede.

bash
docker network prune

Ver Uso de Espaço Detalhado

Exibe o uso de espaço em disco pelo Docker de forma detalhada (`-v` para "verbose"), mostrando informações mais granulares sobre o consumo de cada tipo de recurso.

bash
docker system df -v

Filtrar Eventos do Sistema Docker

Exibe eventos do daemon Docker, filtrando apenas os eventos relacionados a containers (`--filter type=container`), útil para monitorar atividades específicas.

bash
docker system events --filter type=container

Limpar Cache de Build do Docker

Limpa o cache de build do Docker, removendo camadas intermediárias não utilizadas, o que pode liberar espaço em disco e resolver problemas de build.

bash
docker builder prune

Ver Uso de Espaço em Disco

Exibe um resumo do uso de espaço em disco pelo Docker, detalhando o consumo por imagens, containers, volumes e cache de build.

bash
docker system df

Ver Tamanho das Imagens Formatado

Lista imagens Docker com um formato de tabela personalizado, exibindo repositório, tag e tamanho, para uma análise rápida do espaço ocupado por imagens.

bash
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
7

🔧 Docker Compose

84 snippets

Use esta seção quando estiver trabalhando com aplicações multi-container ou ambientes de desenvolvimento que utilizam o Docker Compose para orquestrar serviços. Abrange desde comandos básicos até configurações avançadas e integração com CI/CD. ⚠️ ATENÇÃO: O comando docker system prune -a --volumes removerá TODOS os dados não utilizados, incluindo volumes. Use com extrema cautela!

Verificar Versão do Docker Compose

Exibe a versão do Docker Compose instalada, útil para verificar a compatibilidade e os recursos disponíveis.

bash
docker-compose --version

Subir Serviços (Foreground)

Constrói, (re)cria, inicia e anexa-se aos containers para todos os serviços definidos no arquivo `docker-compose.yml`, executando em primeiro plano e exibindo os logs.

bash
docker-compose up

Subir Serviços (Background - Detached)

Constrói, (re)cria, inicia e anexa-se aos containers para todos os serviços definidos no arquivo `docker-compose.yml`, executando em modo `detached` (segundo plano).

bash
docker-compose up -d

Subir Serviço Específico

Inicia apenas o serviço `backend` e suas dependências definidas no arquivo `docker-compose.yml`.

bash
docker-compose up backend

Subir Serviços Reconstruindo Imagens

Constrói as imagens dos serviços antes de iniciar os containers, garantindo que as imagens estejam atualizadas com as últimas alterações no `Dockerfile`.

bash
docker-compose up --build

Subir Serviços Forçando Recriação

Recria todos os containers, mesmo que não haja alterações na configuração ou imagem, útil para resolver problemas ou aplicar novas configurações.

bash
docker-compose up --force-recreate

Subir Serviços Removendo Órfãos

Remove containers de serviços que não estão mais definidos no arquivo `docker-compose.yml` (órfãos) ao iniciar, limpando o ambiente.

bash
docker-compose up --remove-orphans

Subir Serviço Sem Dependências

Inicia um serviço específico sem iniciar suas dependências, útil para testar um componente isoladamente.

bash
docker-compose up --no-deps

Subir Serviços com Timeout Customizado

Define um tempo limite de 30 segundos para o desligamento graceful dos containers ao parar ou reiniciar os serviços durante o `up`.

bash
docker-compose up --timeout 30

Parar e Remover Serviços e Redes

Para e remove os containers, redes e volumes padrão criados por `docker-compose up`.

bash
docker-compose down

Parar e Remover Serviços, Redes e Volumes

Para e remove os containers, redes e também os volumes nomeados definidos no arquivo `docker-compose.yml` (`-v` para "volumes").

bash
docker-compose down -v

Apenas Parar Serviços

Para os containers dos serviços definidos no `docker-compose.yml`, mas não os remove, permitindo que sejam reiniciados posteriormente com `docker-compose start`.

bash
docker-compose stop

Parar Serviço Específico

Para apenas o container do serviço `backend` definido no `docker-compose.yml`.

bash
docker-compose stop backend

Parar e Remover Serviços e Imagens

Para e remove os containers, redes e também as imagens criadas pelos serviços (`--rmi all`), liberando mais espaço em disco.

bash
docker-compose down --rmi all

Parar Serviços com Timeout Customizado

Define um tempo limite de 10 segundos para o desligamento graceful dos containers ao parar os serviços com `down`.

bash
docker-compose down --timeout 10

Forçar Remoção de Containers

Remove os containers parados sem pedir confirmação (`-f` para "force").

bash
docker-compose rm -f

Parar e Remover Serviços e Órfãos

Para e remove os containers, redes e também quaisquer containers que não são mais referenciados no arquivo `docker-compose.yml`.

bash
docker-compose down --remove-orphans

Ver Logs de Todos os Serviços

Exibe a saída de log consolidada de todos os serviços definidos no `docker-compose.yml`.

bash
docker-compose logs

Seguir Logs de Todos os Serviços

Exibe a saída de log de todos os serviços em tempo real, seguindo novas entradas (`-f` para "follow"), mantendo a conexão aberta.

bash
docker-compose logs -f

Ver Logs de Serviço Específico

Exibe a saída de log apenas do serviço `backend`.

bash
docker-compose logs backend

Acessar Shell em Container de Serviço

Executa o comando `bash` dentro do container do serviço `backend`, permitindo acesso interativo ao shell do container.

bash
docker-compose exec backend bash

Executar Comando Específico em Container de Serviço

Executa um comando específico (`cargo build`) dentro do container do serviço `backend`.

bash
docker-compose exec backend cargo build

Ver Últimas N Linhas de Log de Serviço

Exibe as últimas 50 linhas de log do serviço `backend`.

bash
docker-compose logs --tail 50 backend

Ver Logs de Serviço a Partir de um Período

Exibe os logs do serviço `backend` gerados na última hora.

bash
docker-compose logs --since="1h" backend

Executar Comando Sem TTY

Executa o comando `ls -la` dentro do container do serviço `backend` sem alocar um pseudo-TTY (`-T`), útil para scripts automatizados ou quando a saída não precisa de formatação interativa.

bash
docker-compose exec -T backend ls -la

Executar Comando como Usuário Específico

Executa o comando `bash` dentro do container do serviço `backend` como o usuário `root` (`-u`), útil para tarefas administrativas que requerem privilégios elevados.

bash
docker-compose exec -u root backend bash

Construir Imagens de Todos os Serviços

Constrói as imagens para todos os serviços que possuem um `build` definido no `docker-compose.yml`.

bash
docker-compose build

Construir Imagem de Serviço Específico

Constrói a imagem apenas para o serviço `backend`.

bash
docker-compose build backend

Construir Imagens Sem Cache

Constrói as imagens dos serviços sem utilizar o cache de camadas, garantindo um build limpo e do zero, útil para resolver problemas de cache.

bash
docker-compose build --no-cache

Escalar Serviço para Múltiplas Instâncias

Inicia os serviços em modo `detached` e escala o serviço `backend` para 3 instâncias, útil para balanceamento de carga ou testes de desempenho.

bash
docker-compose up -d --scale backend=3

Atualizar Imagens de Serviços (Pull)

Baixa as imagens mais recentes para todos os serviços definidos no `docker-compose.yml` de seus respectivos repositórios.

bash
docker-compose pull

Validar Configuração do Docker Compose

Valida e exibe a configuração efetiva do `docker-compose.yml` (e arquivos de override), útil para depuração da configuração antes de iniciar os serviços.

bash
docker-compose config

Ver Status dos Serviços

Lista todos os containers criados pelo Docker Compose, mostrando seu status, portas e nomes, similar ao `docker ps` mas focado nos serviços do Compose.

bash
docker-compose ps

Build de Imagens em Paralelo

Constrói as imagens para múltiplos serviços em paralelo, acelerando o processo de build para projetos com muitos serviços.

bash
docker-compose build --parallel

Build de Imagens com Progresso Detalhado

Constrói as imagens com uma saída de progresso detalhada e sem formatação especial, útil para ambientes CI/CD ou logs.

bash
docker-compose build --progress=plain

Escalar Múltiplos Serviços

Inicia os serviços e escala múltiplos serviços simultaneamente, por exemplo, `web` para 2 instâncias e `db` para 1 instância, em uma única operação.

bash
docker-compose up --scale web=2 --scale db=1

Executar Comando com Variável de Ambiente Inline

Executa um comando one-off em um novo container do serviço `backend`, passando uma variável de ambiente `VAR` com o valor `value` inline.

bash
docker-compose run --env VAR=value backend

Executar Comando com Variáveis de Arquivo .env

Executa um comando one-off em um novo container do serviço `backend`, carregando variáveis de ambiente de um arquivo `.env` específico.

bash
docker-compose run --env-file .env backend

Ver Nomes dos Serviços Configurados

Exibe apenas os nomes dos serviços definidos na configuração do `docker-compose.yml`, útil para scripts ou automação.

bash
docker-compose config --services

Subir Serviços com Arquivo .env Específico

Inicia os serviços utilizando variáveis de ambiente definidas em um arquivo `prod.env` específico, sobrescrevendo ou complementando as do `.env` padrão, para diferentes ambientes.

bash
docker-compose --env-file prod.env up

Ver Variáveis de Ambiente em Novo Container

Executa o comando `env` dentro de um novo container do serviço `backend` e o remove (`--rm`) após a execução, para listar as variáveis de ambiente disponíveis para o serviço.

bash
docker-compose run --rm backend env

Ver Variáveis de Ambiente em Container em Execução

Executa o comando `printenv` dentro do container *em execução* do serviço `backend` para listar suas variáveis de ambiente.

bash
docker-compose exec backend printenv

Subir Serviços com Nome de Projeto Customizado

Inicia os serviços sob um nome de projeto específico (`--project-name projeto`), o que afeta os nomes dos containers, redes e volumes criados, útil para isolar ambientes.

bash
docker-compose --project-name projeto up

Subir Serviços com Driver de Volume Específico

Inicia os serviços em modo `detached`, especificando o driver de volume `local` para volumes definidos nos serviços. Geralmente, o driver é configurado diretamente no `docker-compose.yml`.

bash
docker-compose up -d --volume-driver local

Listar Conteúdo de Volume em Container

Executa o comando `ls /data` dentro do container do serviço `backend` para listar o conteúdo de um volume montado em `/data`.

bash
docker-compose exec backend ls /data

Listar Conteúdo de Volume Compartilhado em Novo Container

Executa o comando `ls /shared` em um novo container do serviço `backend` (que é removido após a execução) para listar o conteúdo de um volume compartilhado montado em `/shared`.

bash
docker-compose run --rm backend ls /shared

Adicionar Alias de Rede (Configuração via YAML)

Este comando não adiciona um alias de rede diretamente via `up`. Aliases de rede para serviços são definidos dentro da configuração de rede do serviço no arquivo `docker-compose.yml` para permitir que outros serviços o encontrem por esse nome.

bash
docker-compose up --network-alias web

Testar Conectividade entre Serviços

Executa o comando `ping database` dentro do container do serviço `backend` para testar a conectividade de rede com o serviço `database`.

bash
docker-compose exec backend ping database

Remover Volumes ao Parar Serviços

Para e remove os containers, redes e todos os volumes nomeados definidos no arquivo `docker-compose.yml`.

bash
docker-compose down --volumes

Listar Volumes do Projeto Docker Compose

Lista todos os volumes Docker e filtra aqueles que contêm o nome do projeto (`projeto`), útil para identificar volumes criados pelo Docker Compose.

bash
docker volume ls | grep projeto

Listar Redes do Projeto Docker Compose

Lista todas as redes Docker e filtra aquelas que contêm o nome do projeto (`projeto`), útil para identificar redes criadas pelo Docker Compose.

bash
docker network ls | grep projeto

Subir Serviço Sem Suas Dependências

Inicia o serviço `backend` sem iniciar suas dependências, útil para isolar e testar um único serviço.

bash
docker-compose up --no-deps backend

Recriar Serviço Sem Dependências

Recria os containers de um serviço específico sem iniciar suas dependências, útil para forçar uma recriação sem afetar outros serviços.

bash
docker-compose up --force-recreate --no-deps

Reiniciar Serviço Específico

Reinicia o container do serviço `backend`.

bash
docker-compose restart backend

Reiniciar Todos os Serviços

Reinicia todos os containers dos serviços definidos no `docker-compose.yml`.

bash
docker-compose restart

Pausar Serviço Específico

Pausa o container do serviço `backend`, suspendendo seus processos sem encerrá-lo.

bash
docker-compose pause backend

Despausar Serviço Específico

Despausa o container do serviço `backend` que foi previamente pausado.

bash
docker-compose unpause backend

Matar Serviço Específico

Força a parada imediata do container do serviço `backend` enviando um sinal SIGKILL, sem esperar um desligamento graceful.

bash
docker-compose kill backend

Escalar Serviço para Zero Instâncias

Reduz o número de instâncias do serviço `backend` para zero, efetivamente parando e removendo todos os containers associados a ele.

bash
docker-compose up --scale backend=0

Subir Serviços com Arquivo Compose Específico

Inicia os serviços utilizando um arquivo `docker-compose` alternativo (`docker-compose.prod.yml`) em vez do padrão, útil para diferentes ambientes (produção, desenvolvimento).

bash
docker-compose -f docker-compose.prod.yml up

Subir Serviços com Múltiplos Arquivos Compose

Inicia os serviços combinando as configurações de múltiplos arquivos `docker-compose`, onde o segundo arquivo (`override.yml`) pode sobrescrever ou estender o primeiro.

bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml up

Subir Serviços em Modo de Compatibilidade

Ativa o modo de compatibilidade, que tenta converter opções de `deploy` do Compose para opções de `run` do Docker, útil para compatibilidade com Docker Swarm.

bash
docker-compose --compatibility up

Subir Serviços com Output Detalhado (Verbose)

Inicia os serviços e exibe uma saída detalhada (`--verbose`) do que o Docker Compose está fazendo, útil para depuração de problemas de inicialização.

bash
docker-compose --verbose up

Subir Serviços Sem Cores (No ANSI)

Inicia os serviços, desabilitando a saída ANSI (cores) no terminal (`--no-ansi`), útil para logs em sistemas que não interpretam códigos de cor ou para logs em arquivos.

bash
docker-compose --no-ansi up

Subir Serviços com Perfil Específico

Inicia os serviços que pertencem ao perfil `dev` (`--profile`), permitindo ativar/desativar grupos de serviços com base no ambiente ou propósito.

bash
docker-compose --profile dev up

Subir Serviços com Múltiplos Perfis

Inicia os serviços que pertencem aos perfis `dev` E `test`, ativando múltiplos grupos de serviços simultaneamente.

bash
docker-compose --profile dev --profile test up

Validar Configuração Resolvendo Variáveis de Ambiente

Valida e exibe a configuração do `docker-compose.yml`, resolvendo e substituindo todas as variáveis de ambiente pelos seus valores atuais, útil para verificar a configuração final.

bash
docker-compose config --resolve-env-vars

Executar Testes Automatizados (CI/CD)

Inicia os serviços definidos em `docker-compose.test.yml` e encerra todos os outros containers se um deles sair (`--abort-on-container-exit`), ideal para ambientes de teste automatizados onde a falha de um teste deve parar tudo.

bash
docker-compose -f docker-compose.test.yml up --abort-on-container-exit

Ambiente CI/CD com Build

Inicia os serviços definidos em `docker-compose.ci.yml`, reconstruindo as imagens, para um ambiente de Integração Contínua (CI) garantindo que o ambiente esteja sempre atualizado.

bash
docker-compose -f docker-compose.ci.yml up --build

Executar Testes Unitários em Container

Executa o comando `npm test` em um novo container do serviço `backend` e o remove (`--rm`) após a execução, ideal para rodar testes unitários ou de integração de forma isolada.

bash
docker-compose run --rm backend npm test

Executar Lint de Código em Container

Executa a ferramenta de lint `flake8` em um novo container do serviço `backend` e o remove (`--rm`) após a execução, para análise estática de código Python.

bash
docker-compose run --rm backend flake8 .

Executar Migrações de Banco de Dados

Executa o comando `python manage.py migrate` em um novo container do serviço `backend` e o remove (`--rm`) após a execução, para aplicar migrações de banco de dados em aplicações Django.

bash
docker-compose run --rm backend python manage.py migrate

Coletar Arquivos Estáticos (Django)

Executa o comando `python manage.py collectstatic` dentro do container em execução do serviço `backend` para coletar arquivos estáticos em aplicações Django.

bash
docker-compose exec backend python manage.py collectstatic

Reciclar Ambiente Docker Compose

Primeiro, para e remove todos os serviços e suas redes (`down`), e depois os inicia novamente, reconstruindo as imagens (`up --build`), útil para um "reset" completo do ambiente de desenvolvimento.

bash
docker-compose down && docker-compose up --build

Verificar Versão do Docker Compose V2

Exibe a versão do Docker Compose V2, que é integrada ao cliente Docker (o comando `compose` é um subcomando de `docker`).

bash
docker compose version

Subir Serviços (Docker Compose V2)

Inicia os serviços definidos no arquivo `docker-compose.yml` usando a sintaxe da versão V2 do Docker Compose.

bash
docker compose up

Modo Watch (Docker Compose V2)

Monitora o sistema de arquivos e reinicia ou reconstrói serviços automaticamente quando alterações são detectadas, útil para desenvolvimento local com feedback instantâneo.

bash
docker compose watch

Converter para Docker Compose V2 (Alpha)

Tenta converter um arquivo `docker-compose.yml` da versão V1 para a sintaxe da versão V2, útil para migração. (Comando alpha, pode mudar).

bash
docker compose alpha convert

Configuração em JSON (Docker Compose V2)

Valida e exibe a configuração efetiva do `docker-compose.yml` em formato JSON, útil para processamento programático ou integração com outras ferramentas.

bash
docker compose config --format json

Executar Comando (Docker Compose V2)

Executa o comando `bash` em um novo container do serviço `backend` (V2) e o remove (`--rm`) após a execução.

bash
docker compose run --rm backend bash

Esperar Saúde dos Containers (Docker Compose V2)

Inicia os serviços e espera até que todos os containers estejam saudáveis (healthcheck) antes de considerar o comando completo, útil em scripts de CI/CD para garantir que a aplicação esteja pronta.

bash
docker compose up --wait

Anexar Logs de Dependências (Docker Compose V2)

Inicia os serviços e anexa-se aos logs de todos os serviços, incluindo suas dependências, útil para observar o início completo da aplicação e depurar problemas de inicialização entre serviços.

bash
docker compose up --attach dependencies

Copiar Arquivos (Docker Compose V2)

Copia arquivos ou diretórios de dentro do container do serviço `backend` para um diretório local no host, usando a sintaxe V2 do Docker Compose.

bash
docker compose cp backend:/app ./local

Parar Serviços com Timeout (Docker Compose V2)

Para e remove os serviços com um tempo limite de 30 segundos para o desligamento graceful, usando a sintaxe V2 do Docker Compose.

bash
docker compose down --timeout 30
8

🌐 Redes e Volumes

13 snippets

Use esta seção quando estiver configurando a comunicação entre containers, gerenciando a persistência de dados ou isolando ambientes de rede no Docker.

Listar Redes Docker

Lista todas as redes Docker no sistema, mostrando seus IDs, nomes, drivers e escopos, útil para entender a topologia de rede.

bash
docker network ls

Inspecionar Rede Docker

Exibe informações detalhadas de baixo nível sobre a rede Docker `bridge` em formato JSON, incluindo containers conectados, configurações de IP e opções.

bash
docker network inspect bridge

Criar Nova Rede Docker

Cria uma nova rede Docker chamada `blueprint-net` usando o driver `bridge`, permitindo que containers conectados a ela se comuniquem facilmente por nome.

bash
docker network create --driver bridge blueprint-net

Remover Rede Docker

Remove uma rede Docker específica. A rede deve estar vazia (sem containers conectados) para ser removida.

bash
docker network rm network_name

Listar Volumes Docker

Lista todos os volumes Docker armazenados localmente, mostrando seus nomes e drivers, útil para gerenciar a persistência de dados.

bash
docker volume ls

Inspecionar Volume Docker

Exibe informações detalhadas de baixo nível sobre um volume Docker específico em formato JSON, incluindo seu driver, ponto de montagem e opções.

bash
docker volume inspect volume_name

Remover Volume Docker

Remove um volume Docker específico. O volume não pode estar em uso por nenhum container. Use com cautela para evitar perda de dados.

bash
docker volume rm volume_name

Usar Volume Nomeado em Container

Executa um container da imagem `alpine` e monta um volume nomeado (`nome_volume`) no diretório `/data` dentro do container, garantindo persistência de dados.

bash
docker run -v nome_volume:/data alpine

Testar Conexão entre Containers

Executa o comando `ping container2` dentro do `container1` para testar a conectividade de rede entre dois containers na mesma rede Docker.

bash
docker exec -it container1 ping container2

Testar Conectividade de API entre Containers

Executa o comando `curl` dentro do container `frontend` para testar a acessibilidade e o status de saúde de uma API no container `backend` na porta `3001`.

bash
docker exec frontend curl http://backend:3001/health

Conectar Container a uma Rede

Conecta um container Docker existente a uma rede Docker específica (neste caso, a rede `bridge`), permitindo que ele se comunique com outros containers nessa rede.

bash
docker network connect bridge container

Desconectar Container de uma Rede

Desconecta um container Docker de uma rede específica (neste caso, a rede `bridge`), isolando-o dessa rede.

bash
docker network disconnect bridge container

Criar Volume Nomeado

Cria um novo volume Docker nomeado `data`, que pode ser usado para persistir dados entre containers ou entre o host e containers, independentemente do ciclo de vida do container.

bash
docker volume create --name data
9

🔧 Troubleshooting

14 snippets

Use esta seção quando estiver encontrando problemas com containers, redes, instalação do Docker ou desempenho. Contém comandos para verificar status, diagnosticar problemas comuns e acessar logs do sistema.

Verificar Instalação do Docker

Verifica as versões do cliente e do servidor (daemon) Docker, útil para confirmar se o Docker está instalado e se o daemon está respondendo.

bash
docker version

Status do Serviço Docker (Linux)

Verifica o status do serviço Docker no Linux usando `systemctl`, mostrando se o daemon está ativo, rodando e quaisquer mensagens de log recentes do sistema.

bash
systemctl status docker

Status do Serviço Docker (Windows)

Verifica o status do serviço Docker no Windows usando `Get-Service` (PowerShell), mostrando se o serviço está em execução.

bash
Get-Service docker

Adicionar Usuário ao Grupo Docker (Linux)

Adiciona o usuário atual (`$USER`) ao grupo `docker` no Linux, concedendo permissões para executar comandos Docker sem `sudo`. Requer logout/login ou `newgrp docker` para aplicar.

bash
sudo usermod -aG docker $USER

Aplicar Grupo Docker no Shell Atual

Altera o grupo primário do shell atual para `docker`, aplicando as permissões do grupo sem a necessidade de fazer logout e login novamente. Útil após adicionar o usuário ao grupo docker.

bash
newgrp docker

Ver Uso de Espaço em Disco

Exibe um resumo do uso de espaço em disco pelo Docker, detalhando o consumo por imagens, containers, volumes e cache de build, útil para diagnosticar problemas de espaço.

bash
docker system df

Limpar TODOS os Dados Docker Não Usados

Remove todos os dados não utilizados pelo Docker, incluindo containers parados, redes não utilizadas, imagens penduradas e todas as imagens sem tag (`-a` para "all"), liberando o máximo de espaço possível.

bash
docker system prune -a

Listar Redes Docker

Lista todas as redes Docker no sistema, mostrando seus IDs, nomes, drivers e escopos, útil para diagnosticar problemas de conectividade entre containers.

bash
docker network ls

Inspecionar Rede Docker

Exibe informações detalhadas de baixo nível sobre a rede Docker `bridge` em formato JSON, incluindo containers conectados e configurações de IP, crucial para depuração de rede.

bash
docker network inspect bridge

Logs do Daemon Docker (Linux)

Exibe os logs do serviço Docker no Linux usando `journalctl`, útil para depurar problemas com o daemon Docker em si, como falhas de inicialização ou erros internos.

bash
journalctl -u docker.service

Logs do Docker (Windows Event Log)

Exibe os logs de eventos relacionados ao Docker no Windows usando `Get-EventLog` (PowerShell), útil para depurar problemas no sistema operacional ou no serviço Docker.

bash
Get-EventLog -LogName Application -Source Docker

Listar Contextos Docker

Lista todos os contextos Docker disponíveis, que permitem alternar facilmente entre diferentes hosts Docker (local, remoto, cloud), útil para verificar qual ambiente está sendo alvo dos comandos.

bash
docker context ls

Mudar Contexto Docker Ativo

Muda o contexto Docker ativo para `my-context`, direcionando os comandos Docker subsequentes para o host ou ambiente definido nesse contexto. Essencial ao trabalhar com múltiplos ambientes Docker.

bash
docker context use my-context

Verificar Assinatura de Confiança de Imagem

Verifica a assinatura de confiança de uma imagem Docker específica, garantindo que a imagem não foi adulterada e vem de uma fonte confiável, importante para segurança.

bash
docker trust inspect image:tag

Receba os ultimos artigos no seu email.

Follow Us: