Olá Pessoal!
Hoje vamos fazer algo um pouco mais avançado no Docker, aprenderemos um pouco mais sobre os comandos no Docker, e como podem nos ajudar. Antes vamos definir um plano de ação: Temos um container com Apache dentro, precisamos saber:
1 – Como saber quais containers possuo?
2 – Quais foram os últimos logs desse container?
3 – Em que porta está executando o container?
4 – Que comando tenho que executar para parar e iniciar o container?
5 – Como sei que o container está no ar?
FÁCIL:
Para criar/iniciar um container você pode utilizar o seguinte comando:
docker run -d -p 80:80 httpd
Esse comando fará com que seja iniciado um container utilizando uma imagem pronta do Apache, caso a imagem não seja encontrada localmente, o próprio Docker realizará o download dessa imagem através de seus repositórios oficiais. Ele atribuirá a porta 80 do host para o container, ou seja, quando acesso a porta 80 do host, o que será apresentado é o site que encontra-se dentro do container.
Podemos ainda, mapear uma pasta do host para dentro do container, isso fará com que o container compartilhe com o host uma determinada pasta, veja o comando:
docker run -d -p 80:80 -v /var/www/html:/var/www/html httpd
Por padrão, a pasta mapeada recebe permissão de leitura e escrita, mas é possível fazer com que esse mapeamento seja somente leitura, para isso basta adicionar :ro no final, veja:
docker run -d -p 80:80 -v /var/www/html:/var/www/html:ro httpd
Isso fará com que o container não possa adicionar ou escrever dentro da pasta compartilhada. Agora voltando ao nosso plano de ação, visto que já sabemos como iniciar um container.
1 – Como saber quais containers possuo?
Você pode executar o comando: docker ps -a, isso fará com que seja listado todos os containers que você possui no host onde está sendo executado o comando (ou onde está apontando o Docker Client)
2 – Quais foram os últimos logs desse container?
Na listagem do comando acima, poderá ser visto o id do container, tendo essa informação, basta executar o comando: docker logs containerid . Esse comando retornará na tela os últimos eventos ocorridos dentro do container (mais para frente veremos a diferença nos outputs de logs para um container)
3 – Em que porta está executando o container?
A forma mais simples de saber isso é executando o comando: docker ps, esse comando retornará várias informações dos containers que estão running no momento, entre essas informações podemos capturar em qual porta do host o container está ‘ouvindo’.
4 – Que comando tenho que executar para parar e iniciar o container?
Isso é simples, docker stop e docker start, há opções mais drásticas como docker kill, mas esse último é recomendado apenas em último caso, pois o mesmo fará com que o container seja parado de forma abrupta, podendo causar o corrompimento do filesystem do mesmo.
5 – Como sei que o container está no ar?
O comando docker ps retornará apenas os containers que estão ativos, é claro que apenas isso não quer dizer que sua aplicação/ambiente está funcionando corretamente, um forma de testar isso é acessando seu ambiente de fora, por exemplo, no comando que executamos acima: docker run -d -p 80:80 httpd o mesmo fará com que seja alocado a porta 80 do host para o container, isso quer dizer que caso eu acesse: http://ipdohost estarei acessando na verdade a porta 80 que está dedicada ao container, com isso estarei acessando o site que encontra-se dentro do container, o site acessou? Perfeito, seu container está no ar.
Espero que essas dicas o ajudem a entender um pouco mais o funcionamento de um container, essas são algumas tarefas administrativas que possivelmente serão as mais utilizadas durante o seu convívio com o Docker. Dúvidas, sugestões? nos mande um mensagem e vamos conversando.
Grande Abraço!