Voltar para artigos
Artigo

Manipulando Containers Docker

12/04/2025
Guilherme Rossi Kirsten
4 min de leitura

Guia completo de comandos essenciais para gerenciar e manipular containers Docker no dia a dia.

Manipulando Containers Docker

Guia completo de comandos essenciais para gerenciar e manipular containers Docker no dia a dia.

Executando o Primeiro Container

Para verificar se o Docker está instalado corretamente, execute:

docker run hello-world

Este comando baixa a imagem hello-world (se ainda não estiver no seu sistema) e executa um container que exibe uma mensagem de confirmação.

Nomeando Containers e Entendendo Diferentes Execuções

Executando um Container com um Nome Personalizado

Por padrão, o Docker atribui nomes aleatórios aos containers. Você pode especificar um nome usando a flag --name:

docker run --name mynginx nginx

Executando um Container em Segundo Plano (-d)

Para executar um container em modo "detached" (segundo plano), use a flag -d:

docker run -d --name mynginx nginx

Mapeando Portas com a Flag -p

Para mapear a porta do container para a porta do host, use -p:

docker run -d -p 8080:80 nginx

Isso mapeia a porta 80 do container para a porta 8080 do host.

Parando, Iniciando e Removendo Containers

Listando Containers em Execução e Parados

Containers em execução:

docker ps

Todos os containers (incluindo parados):

docker ps -a

Parando um Container

docker stop mynginx

Iniciando um Container Parado

docker start mynginx

Removendo um Container

Remoção normal:

docker rm mynginx

Remoção forçada (para containers em execução):

docker rm -f mynginx

Attach e Detach

Conectando-se a um Container em Execução (docker attach)

docker attach mynginx

Este comando conecta seu terminal ao processo principal do container.

Saindo do Container sem Parar (CTRL + P, CTRL + Q)

Para sair do modo attach sem parar o container, pressione CTRL + P seguido de CTRL + Q.

Executando Comandos e Removendo Containers Automaticamente

Executando Comandos em um Novo Container

docker run nginx ls -la

Isto executa ls -la no container nginx e exibe o resultado no seu terminal.

Entrando no Container com Bash

docker run -it nginx bash

Isto inicia um container nginx e abre uma sessão interativa do bash.

Diferença entre docker run e docker exec

  • docker run: Cria e inicia um novo container.
  • docker exec: Executa um comando em um container já em execução.

Exemplo com docker exec:

docker exec -it mynginx bash

Removendo Containers Automaticamente (--rm)

docker run --rm nginx ls -la

Removendo Todos os Containers com Subcomandos

Para remover todos os containers parados:

docker rm $(docker ps -a -q)

Para remover todos os containers, incluindo os em execução, use:

docker rm -f $(docker ps -a -q)

Publicação de Portas

Para executar um servidor Nginx em um container e publicar a porta:

docker run -d -p 8080:80 nginx

Agora, o Nginx está acessível em http://localhost:8080.

Execução Interativa e Acesso ao Shell

Acessando o Shell de um Container com docker exec -it

Se você já tem um container em execução e deseja acessar seu shell:

docker exec -it mynginx bash

Diferença entre docker exec e docker attach

  • docker exec: Executa um novo processo dentro de um container em execução (ex.: abrir uma nova sessão bash).
  • docker attach: Anexa seu terminal ao processo principal do container (ex.: ver logs em tempo real).

Resumo dos Comandos

Executar um container

docker run [opções] imagem [comando]

Listar containers

docker ps        # Em execução
docker ps -a     # Todos

Parar, iniciar e remover containers

docker stop <nome|id>
docker start <nome|id>
docker rm <nome|id>
docker rm -f <nome|id>   # Forçado

Executar comandos em containers

docker exec -it <nome|id> <comando>

Acessar shell bash

docker exec -it <nome|id> bash

Remover todos os containers

docker rm $(docker ps -a -q)
docker rm -f $(docker ps -a -q)   # Incluindo em execução
Ver todos os artigos