Lab 1.2 - Operar

Lab 1.2 - Objetivos

  • Buscar informações containers em execução

  • Executar processos adicionais em containers ativos

  • Mapear volumes locais aos containers

  • Mapear rede aos containers

Para as tarefas seguintes execute o comando abaixo:

docker run -d busybox /bin/sh -c "while true; do echo Hello from Linux container [\$HOSTNAME];sleep 1;done"
docker run -d busybox /bin/sh -c "while true; do echo Hello from Linux container [\$HOSTNAME];sleep 2;done"
docker run -d busybox /bin/sh -c "while true; do echo Hello from Linux container [\$HOSTNAME];sleep 3;done"

Ou se preferir, execute tudo em um único comando:

for i in `seq 3`; do docker run -d busybox /bin/sh -c "while true; do echo Hello from Linux container [\$HOSTNAME];sleep $i;done"; done

Tarefas

1.2.1 - Monitorando Containers

Para buscar mais informações sobre os containers em execução, usa-se:

docker ps

No exemplo anterior não são listados containers terminados. Para visualizar a listagem completa, usa-se:

Para visualizar os processos em execução dentro de um container, usamos:

Também podemos inspecionar os metadados do container, ou de uma imagem, através de:

Tente obter o endereço IP de um container usando o comando abaixo:

1.2.2 - Execução Ad-Hoc

Também podemos conectar em um container em execução e executar processos adicionais usando:

1.2.3 - Adicionando Persistência através de Volumes

Containers são essencialmente efêmeros. Entretanto, podemos mapear diretórios a eles e ter mecanismos de persistência de dados. Esse mecanismo é usado através do comando:

/tmp: diretório no FS do Host

/tmp_from_host: volume mapeado dentro do container

z: em sistemas com SELinux habilitado, indica que conteúdo do volume pode ser compartilhado por múltiplos containers

para mais detlahes sobre o volumes no Docker veja: https://docs.docker.com/engine/admin/volumes/volumes/

No exemplo acima, o diretório /tmp/host do container será mapeado para o diretório /tmp no host hospedeiro

1.2.4 - Mapeando Portas de rede entre o container e o host

Por padrão, os containers utilizam de redes privadas locais no host hospedeiro. Dessa forma se faz necessário usar mapeamento de portas para expor serviços de rede, como uma aplicação web:

No exemplo acima, a porta 80 do container (httpd) será exposta na porta 8080 do host hospedeiro

para se certificar disso use o comando abaixo:

execute o teste abaixo tentando acessr a porta 8080 a partir do host (fora do container):

Ao invés de mapear manualmente, podemos usar portas aleatórias:

1.2.5 Monitorando o uso de recursos do container

Para monitorar a quantidade de recursos que um container está consumindo em um host, podemos executar o comando

E podemos visualizar somente de um container rodando o comando

Last updated