Comandos Essenciais do Docker para Gerenciamento de Containers

Para listar todas as imagens disponíveis localmente, utilize o comando:

$ docker images
REPOSITORY          TAG       IMAGE ID        CREATED         SIZE
ubuntu              22.04     2b4cba85892a    2 weeks ago     72.8MB
nginx               latest    61395b4c586d    3 weeks ago     187MB
redis               7-alpine  3ba1b4a8c89f    1 month ago     32.1MB

Para iniciar um container interativo, execute:

$ docker run -it ubuntu:22.04 /bin/bash
root@a1b2c3d4e5f6:/# exit

Para executar um processo em segundo plano, use a flag -d:

$ docker run -d ubuntu:22.04 /bin/sh -c "while true; do echo 'servico ativo'; sleep 2; done"
f9e8d7c6b5a4... # ID do container

Para verificar os logs de um container em execução:

$ docker logs f9e8d7c6b5a4
servico ativo
servico ativo

Listar containers ativos:

$ docker ps
CONTAINER ID  IMAGE           COMMAND                 STATUS        NAMES
f9e8d7c6b5a4  ubuntu:22.04    "/bin/sh -c 'while…"   Up 2 minutes  thirsty_kalam

Encerrar um container de forma graceful:

$ docker stop thirsty_kalam

Forçar o encerramento de um container que não responde:

$ docker kill f9e8d7c6b5a4

Listar todos os containers, incluindo os parados:

$ docker ps -a

Reiniciar containers existentes:

$ docker start f9e8d7c6b5a4
$ docker restart thirsty_kalam

Remover containers parados. Para containers ativos, encerre-os primeiro ou use -f:

$ docker rm f9e8d7c6b5a4
$ docker rm -f thirsty_kalam

Remover imagens não utilizadas. Para imagens com containers associados, remova-os primeiro ou force a remoção:

$ docker rmi ubuntu:22.04
# Para forçar:
$ docker rmi -f nginx:latest

Nomeação de Containers

Atribuir um nome customizado durante a criação:

$ docker run -itd --name meu-redis redis:7-alpine
123456abcdef...

Renomear um container existente:

$ docker rename meu-redis redis-producao

O nome facilita referenciar o container em outros comandos.

Configurações de Inicialização

Definir o hostname do container:

$ docker run -it -h servidor-web ubuntu:22.04 bash
root@servidor-web:/#

Configurar políticas de reinicialização automática:

  • no: Não reiniciar (padrão).
  • on-failure[:max-retries]: Reiniciar apenas em caso de erro.
  • always: Sempre reiniciar.
  • unless-stopped: Sempre reiniciar, exceto se parado explicitamente.
# Exemplo com 'always'
$ docker run -d --restart=always --name web-always nginx

# Exemplo com 'unless-stopped'
$ docker run -d --restart=unless-stopped --name db-stopped postgres:15

Atualizar a política de reinicialização de um container existante:

$ docker update --restart=no web-always

Montagem de Volumes

Mapear um diretório do host para dentro do container:

$ mkdir -p /dados/app
$ docker run -it -v /dados/app:/app ubuntu:22.04 bash

Isso garante a persistência dos dados fora do ciclo de vida do container.

Limitação de Recursos

Os recursos do container podem ser controlados via cgroups.

CPU

Definir a proporção de CPU (shares):

$ docker run -it --cpu-shares 512 ubuntu:22.04 bash

Isolar CPUs específicas para o container:

$ docker run -it --cpuset-cpus="0,1" ubuntu:22.04 bash

Memória

Limitar o uso de memória:

$ docker run -it -m 256m ubuntu:22.04 bash

I/O de Disco

Limitar a velocidade de escrita em um dispositivo:

$ docker run -it --device /dev/sda:/dev/xvda --device-write-bps /dev/xvda:10mb ubuntu:22.04 bash

Testar o limite com dd:

root@container:/# dd if=/dev/zero of=/tmp/teste bs=1M count=100 oflag=direct

Ferramenta de Teste de Carga (stress)

Útil para testar os limites de recursos configurados.

Exemplo de uso para estressar a CPU:

$ stress --cpu 4 --timeout 30s --verbose

Parâmetros comuns: --cpu N: Cria N processos consumindo CPU. --vm N: Cria N processos consumindo memória. --vm-bytes B: Define o tamanho da memória alocada por processo (ex: 128M).

Tags: Docker containers Comandos administração linha de comando

Publicado em 6-29 00:15