DEV Community

Heyglon Fábio
Heyglon Fábio

Posted on • Edited on

GUIA PRÁTICO DE COMANDOS DO DOCKER #4

Neste artigo, iremos usar falar um pouco de: exec, cp, variáveis de ambiente e health check.

1. Comando exec

O comando exec permite executar comandos dentro de um container em execução.
Para acessar o container em modo interativo:
docker container exec -it meu-nginx bash

Note que:

  • -it: habilita modo interativo
  • bash: acessa o shell Bash como usuário root (se disponível)

Se você deseja apenas executar um comando sem entrar no shell, por exemplo listar os arquivos:
docker container exec meu-nginx ls

Isso retornará as pastas do diretório atual dentro do container.

Também é possível criar arquivos dentro do container:
docker container exec meu-nginx touch arquivo.txt

2. Comando cp

O comando cp permite copiar arquivos do container para o host e do host para o container.

Copiar do Container para o Host

1. Acesse o container: docker container exec -it meu-nginx bash
2. Dentro do container, crie um arquivo: echo "Arquivo criado no container" > container-file
3. Descubra o caminho do arquivo: pwd
4. No hosto copie o arquivo do container: docker container cp meu-nginx:/container-file .

Note que a / significa que o arquivo foi criado na pasta root do container e o . significa que o arquivo será copiado para o diretório atual do host

Copiar do Host para o Container

1. No host, crie um arquivo: echo "Arquivo criadno no host" > host-file
2. Copie para dentro do container: docker container cp host-file meu-nginx:/host-file
3. No container, verifique o conteúdo: cat /host-file

Obs.: para visualizar o conteúdo dos arquivos, utilize cat <nome-do-arquivo>

3. Variáveis de Ambiente, Hostname e Modo Read-Only

3.1 Variáveis de Ambiente
Podemos passar variáveis de ambiente criação do container:
docker container run -it --name alpine-environment -e VAR1=abc123 -e VAR2=def456 alpine:latest

Dentro do container use o comando env para verificar as variáveis criadas.

3.2 Modo Read-Only
O modo somente leitura impede qualquer alteração no sistema de arquivos:
docker container run -it alpine-read-only --read-only alpine:latest
Agora tente criar um arquivo dentro do container:
touch teste.txt

Note que será exibida uma mensagem de erro, indicando que o sistema de arquivos é apenas leitura.

3.3 Alterar o Hostname
Podemos definir um hostname personalizado para um container:
docker container run -it --name ubuntu-hostname --hostname meu-ubuntu ubuntu:24.04
Dentro do container, execute:
hostname

O retorno será meu-ubuntu

4. Health Check

O Health Check é usado para verificar automaticamente o estado de saúde de um container.

4.1 Usando --health-cmd
Crie um container com verificação de saúde:
docker container run -d --name nginx-healtcheck --rm --health-cmd="cat /usr/share/nginx/html/index.html" nginx:latest

Se o arquivo index.html existir, o container será considerado healthy; caso contrário, unhealthy.

4.2 Ajustando Intervalos e Tentativas
Podemos configurar a frequência e o número de tentativas de checks no container:
docker container run -d --name nginx-healthcheck --rm --health-cmd="caat /usr/share/nginx/html/index.html" --health-interval=30s --health-retries=3 --health-timeout=10s nginx:latest

  • Tempo entre verificações: --health-interval=30s

  • Número de tentativas antes de marcar como falha: --health-retries=3

  • Tempo limite para cada verificação: --health-timeout=10s

Verifique o estado: docker container ls
A coluna STATUS mostrará healthy ou unhealthy

Top comments (0)