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 interativobash
: 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)