Conhecendo o Docker – Parte #2
Fala galera, beleza? 👍🏼
Dando continuidade na série de posts sobre o Docker , vamos para a parte 2, onde vamos conhecer um pouco mais sobre essa incrível e poderosa solução.
Na parte 2 iremos ver um pouco do gerenciamento dos container, como limitar a memória, realizar auditoria no container, executar comandos remotamente, e muito mais.
No post anterior vimos a diferença entre maquina virtual e container, vimos também a instalação e como subir um container do zero.
Se você é novo por aqui e ainda não viu o post anterior, que é parte #1 clica👉🏼 aqui , é 👉🏼 aqui mesmo! 🐳 👀
Subindo um Container 🐳
O primeiro passo é subir um container, vamos subir um container com a imagem do CentOS 6.9.
sudo docker run -it centos:6.9 /bin/bash
Vamos também verificar a versão do container criado.
cat /etc/issue
Verificando Alterações no Container 🐳
Um dos parâmetros mais útil do docker, é o “diff”, com ele é possível verificar alterações realizadas nos containers.
Vamos sair do nosso container, lembre-se, para sair do container utilize as teclas “ctrl”+”p”+”q”:
Pronto, voltamos ao Host e vamos verificar se nosso container está em execução:
sudo docker ps
Isso indica que saimos do container da maneira correta 🙂
Agora vamos executar o comando abaixo para verificar as alterações que fizemos até o momento em nosso container.
sudo docker diff container-id
Nenhuma alteração, vamos voltar ao console do container e instalar o pacote do “vim” por exemplo.
sudo docker attach container-id
Agora vamos instalar o “vim” e na sequência limpamos o cache do yum.
yum -y install vim && yum clean all
Voltamos ao console principal do Docker, pressione as teclas “ctrl”+ “p” + “q”.
E vamos executar novamente o comando com o parâmetro “diff”.
sudo docker diff container-id
Reparem na imagem acima, que temos vários arquivos que foram adicionados ou alterados em nosso container.
O parâmetro “diff” é muito útil quando precisamos analisar certas alterações nos containers.
Executando comandos no Container pelo Host Principal
No docker temos um parâmetro muito interessante que nos possibilita executar comandos no container sem precisar conectar ao console do container, muito útil quando queremos ver um determinado processo rodando, ou executar alguma rotina.
Esse parámetro é o “exec”, veja abaixo como podemos utiliza-lo.
Pegue o container-id do container desejado.
sudo docker ps
Verificando os processos rodando no container.
sudo docker exec container-id ps -ef
Podemos também visualizar arquivos.
Inspecionando o Container
Com o parâmetro “inspect” é possível verificarmos todas as configurações de um container, informações sobre configurações de rede, volumes, memória, cpu, data de criação do container, status e etc.
sudo docker inspect container-id
Podemos utilizar o ” | grep ” para filtrar por alguma configuração em especifico, abaixo estarei filtrando o IP do container. |
sudo docker inspect container-id | grep IPAddress
Verificando o Processamento e Desempenho do Container
Para ver como anda o processamento, memória e desempenho de um container, utilizamos o parâmetro “stats”.
sudo docker stats container-id
O consumo do container acima é bem baixo pois o mesmo foi levantando para criarmos esse tutorial, mas é interessante analisar um container em produção, rodando com serviços de alta performance por exemplo.
Definindo Limite de Memória ao Container
Para limitar a memória de um container, ou seja, configurar uma memória fixa a um determinado container é necessário que o parâmetro “-m” seja passado logo na criação do container.
Por exemplo, abaixo criamos um container com limite de 512Mb com Ubuntu.
sudo docker run -it -m 512M debian /bin/bash
Agora voltamos ao console principal e utilizamos um comando que vimos anteriormente, que é o parâmetro “stats”
Para voltar ao console do Host Principal utilize “ctrl” + “p” + “q”
sudo docker stats container-id
Reiniciando um Container
Se você instalou um serviço ou um pacote no seu container, e por algum motivo quer reiniciar o mesmo, saiba que o parâmetro “stop” e “start” não vai te ajudar nesse sentido. Para fazer um reboot no container, temos o parâmetro “restart”, veja abaixo:
sudo docker restart container-id
E podemos utilizar o parâmetro “exec” que vimos hoje para verificar o “uptime” do container.
sudo docker exec container-id uptime
Espero ter contribuído de alguma forma para passar um pouco de informação pra quem está começando a entender o mundo DevOps e Docker. Existem diversos sites na internet com conteúdo muito mais avançado que esse que preparei, porém quis abordar assunto para o pessoal que está iniciando a entender toda essa nova metodologia.
Dúvidas, comentário e sugestões postem nos comentários…
👋🏼 Valeu! e até a próxima!
Johnny Ferreira
johnny.ferreira.santos@gmail.com
http://www.tidahora.com.br