Iniciando com Docker

Jhon Mike
BlogTech
Published in
3 min readMar 31, 2017

--

Atualmente na Compufácil utilizamos Docker para manter o desenvolvimento local idêntico (ou o mais próximo possível) dos outros ambientes do projeto, como o ambiente de produção e homologação. Isso é, possível porque Docker disponibiliza uma interface de fácil execução de containers. Observação o proposito desse post é apenas alavancar o interesse ao docker.

Mas o que são esses tal containers?

Um container é um encapsulamento para um aplicativo com suas dependências. Em outras palavras, em cada container podemos armazenar as dependências de nosso projeto, por exemplo, posso criar um container para o Ubuntu com Apache e PHP, e outro para o PostgreSQL ou MySQL com as mesmas versões que mantenho em ambiente de produção.

O projeto hoje roda no Ubuntu Server em produção e lá temos Apache, PHP, NodeJs(SocketIo) e dependências do Front-end, MySQL, PostgreSQL, RabbitMQ e demais tecnologias rodando para “manter o sistema em pé”.

Antes cada desenvolvedor teria que gastar um bom tempo instalando as dependências do projeto e preparando o ambiente de desenvolvimento na sua máquina. Com o Docker este processo fica simplificado, basta baixar os containers, executá-los e o ambiente já estará pronto para começar a trabalhar.

Todo aquele tempo gasto em preparamento da máquina pode ser utilizado em etapas mais importantes do projeto.

Agora acho que podemos praticar um pouco, criando um pequeno ambiente de desenvolvimento para um website, com Apache, PHP e MySql como exemplo.

Primeiramente, devemos ter o Docker instalado na máquina e vamos utilizar também o docker-compose que é CLI auxiliar do docker que tem o propósito de orquestrar a criação e administração de um conjunto de containers a partir do uso de um simples arquivo de configuração em formato YAML que vamos criar em seguida chamado docker-compose.yml

$ docker -v 
Docker version 17.03.0-ce, build 60ccb2265b
$ docker-compose -v
docker-compose version 1.11.2, build dfed245b

As instruções de instalar o Docker podem ser encontradas aqui: https://docs.docker.com/engine/installation/ e para instalar o Docker Compose em https://docs.docker.com/compose/install/

Seguindo vamos criar o Dockerfile escolhendo uma imagem do Docker Hub com Apache e PHP, definir a imagem como base para nossos containers e aproveitando adicionar a instalação para usar o MySQL:

$ cd path/to/project
$ touch Dockerfile
$ vim Dockerfile

Agora vamos criar mais um arquivo o docker-compose.yml nele vamos usar nosso Dockerfile e adicionar mais um container como dependência, no caso o MySql, e relacioná-lo ao do PHP.

$ touch docker-compose.yml
$ vim docker-compose.yml

Para testar nossos containers crie o arquivo index.php na pasta www com o seguinte conteúdo

$ mkdir www
$ touch index.php
$ vim index.php

Agora na pasta raiz rode o comando docker-compose up -d ele vai baixar o container do PHP e MySQL e em seguida vai roda-los em segundo plano.

Assim que terminar a execução acesse http://localhost e verifique se seu código PHP e sua conexão com o banco não retornaram algum erro.

Se tudo ocorrer bem, execute o comando docker-compose stop para parar os containers e o execute novamente, agora que não precisa mais efetuar o downloads veja que a subida dos containers foi bem rápida.

E se gostou do post e achou útil? Dê um like ❤️ abaixo para ajudar na divulgação e para que mais pessoas tenham acesso ao conteúdo, também quero deixar um agradecimento ao Euclécio Josias Rodrigues e Lucas Dos Santos Abreu pela ótima review do post!

--

--