Docker na Prática – Parte I

Postado por DBC Company Em: Capacitação, Desenvolvimento, Tecnologia Sem comentarios

Eaí, tudo bem?! Continuando com nossos artigos sobre o Docker, hoje é o dia tão esperado, lembra que falamos no primeiro artigo Descomplicando Docker, sobre os conceitos e fundamentos da tecnologia? Então, hoje é o dia de botar a mão na massa! Vem comigo e vamos subir uns containers!

Uma Breve Nota do Autor

Este artigo será separado em duas partes, na primeira iremos subir um container simples em php para entender como tudo funciona e alguns comandos básicos e na segunda parte iremos subir uma aplicação com vários containers utilizando o docker-compose.

Iniciando

Bom, nesse artigo, vamos nos basear na linguagem php para simular uma aplicação e subir nosso primeiro container. Para começar, criei um diretório chamado php-docker-basic onde iremos criar nossos arquivos (você pode criar onde desejar). Agora crie dentro dele um arquivo index.php que será a página inicial da nossa aplicação, com o seguinte código.

Ps: phpinfo() é uma função nativa do php que exibe informações sobre a versão que está sendo utilizada.

Feito isso, iremos criar o Dockerfile, onde teremos as instruções e passos para construir nossa imagem.

No site do Docker Hub na página do php https://hub.docker.com/_/php você pode conferir as imagens oficiais da linguagem e  na seção php:<version>-apache você pode conferir a documentação da imagem que estamos utilizando.

Vamos entender melhor o que é cada comando:

  • A cláusula o FROM indica qual imagem iremos utilizar, neste caso php 7.3 com servidor web apache.
  • O comando Copy copia os arquivos do host para o container, ou seja, está copiando todos arquivos da raiz do nosso diretório para o diretório público do Apache.
  • O comando Expose indica em qual porta o container estará funcionando.
  • A cláusula CMD será executado assim que o container iniciar sua execução e deve se manter sempre no final do Dockerfile. No nosso caso estamos iniciando a execução do servidor Apache.

Iniciando o Container

Agora que já criamos os arquivos, vamos executar no terminal o comando:

docker build -t php-docker-basic .

O parâmetro -t permite nomear nossa imagem, no nosso caso chamamos de php-docker-basic

Assim, o Docker irá executar todos passos contidos no Dockerfile.

Você deve ver algo como a imagem abaixo:

Agora a imagem do nosso container foi criada e está pronta para iniciar o container, para isso utilize o comando:

docker run -p 80:80 -d php-docker-basic

O parâmetro -p indica qual a porta do Host será utilizada para acessar a porta do Container

O parâmetro -d executará o nosso container em background.

php-docker-basic é o nome da imagem que informamos anteriormente no comando de build.

E vamos aos finalmentes…

Agora nosso primeiro container está funcionando, vamos acessar no navegador o endereço http://localhost/index.php (ou http://localhost/), lembrando que a porta 80 é a padrão.

Você verá as informações da versão do php que estamos utilizando.

Agora vamos adicionar um novo arquivo ao nosso projeto, na raiz vamos criar o arquivo hello.php e adicionar o conteúdo abaixo:

E no terminal execute o comando Docker ps, e você verá algo como da imagem abaixo:

O comando Docker ps lista todos containers que estão em execução no momento e nos fornece algumas informações sobre eles.

No terminal execute o comando Docker stop e cole o container ID (primeira coluna indicada no comando Docker ps), este comando irá parar o nosso container.

Dica: Por isso é uma boa estratégia dar nomes aos containers na hora do build, pois fica mais fácil identificá-los futuramente.

Agora execute novamente no terminal o comando docker build -t php-docker-basic .
para que o novo arquivo (hello.php) que criamos seja copiado para dentro do container e execute o comando docker run -p 80:80 -d php-docker-basic para subir novamente o container.

Novamente no navegador acesso o endereço http://localhost/hello.php e veja a mágica acontecer, seu primeiro hello world em php junto ao seu primeiro container Docker (ou não ;D).

Concluindo

Neste artigo podemos ver como subir nosso primeiro container, assim como algumas instruções básicas do Dockerfile e também alguns comandos básicos do dia-a-dia com Docker. No próximo artigo iremos ver como rodar uma aplicação integrada com bancos de dados no Docker.

Por Igor Santos, Desenvolvedor de Sistemas na DBC Company.

igor.santos@dbccompany.com.br

13 Likes