Instalando Docker no Centos 6

Docker e CentOS

O Centos 6 e o Docker não se dão bem, isso já vem sendo discutido a algum tempo, mas em uma situação bem especifica precisei instalá-lo nesta distribuição em sua versão 6. O que precisei realizar ante de fato instalar o Docker no Centos foi atualizar o Kernel através de uma variante o Xen4CentOS mantida pela Special Interest Group ( um grupo de interesse especial da virtualização do CentOS).

Vamos então utilizar os seguintes comandos:

# yum install -y centos-release-xen
# echo includepkgs=kernel kernel-firmware >> /etc/yum.repos.d/CentOS-Xen.repo
# yum update -y kernel
# reboot
# yum install -y https://get.docker.com/rpm/1.7.0/centos-6/RPMS/x86_64/docker-engine-1.7.0-1.el6.x86_64.rpm
# service docker start
# chkconfig docker on

Depois de realizado estes passo rode o hello-world:

# docker run hello-world

Pronto Docker instalado.

Ambiente de Desenvolvimento PHP com o Docker Compose

Docker

Docker Compose é uma ferramenta para execução de aplicativos docker multi-containers o que nos ajuda muito a iniciar um ambiente inteiro com um comando somente.

Neste post vamos utilizar o Docker Compose para configurar um ambiente de desenvolvimento básico, com o PHP, Apache e MySQL.Vamos utilizar dois containers Docker, um para o PHP e Apache e outro para o banco de dados MySQL. Vamos utilizar imagens oficias do Docker Hub.

Primeiramente vamos criar o container para o servidor WEB. Para isso dentro de uma pasta vamos criar um arquivo chamado Dockerfile contendo as seguintes linhas:

FROM php:5.6-apache
RUN docker-php-ext-install mysqli
view raw Dockerfile hosted with ❤ by GitHub

Nos utilizamos uma imagem do repositório oficial, este vem com o PHP 5.6 e o apache. Além disso utilizamos um comando para executar (RUN) a instalação da extensão mysqli. Por hora vamos instalar somente esta extensão, caso queira instalar mais extensões de uma olhada na documentação da imagem que foi utilizada.

O próximo passo é criar um arquivo chamado docker-compose.yml onde teremos as configurações de nossos dois containers. Vamos inserir as seguintes linhas nele:

php:
build: .
ports:
- "8080:80"
- "1443:443"
volumes:
- ./www:/var/www/html
links:
- db
db:
image: mysql:5.7
ports:
- "13306:3306"
volumes:
- /var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=bytes
- MYSQL_DATABASE=byteslivres
view raw docker-compose.yml hosted with ❤ by GitHub

O próximo passo agora é criar a pasta www/ e um arquivo com o nome index.php dentro da pasta www/ com o seguinte código:

<?php
mysqli_connect("db", "root", "bytes") or die(mysqli_error());
echo "Conectou!"
?>
view raw index.php hosted with ❤ by GitHub

Agora vamos colocar para rodar com o comando docker-compose up. Com este comando será mostrado em um modo verbose, ou seja, cuspindo todas as informações no terminal. Caso queira rodar em segundo plano bastar utilizar o seguinte comando: docker-compose up -d

Este post é o basico do que se pode fazer com o docker, mais com esse básico já podemos ter nosso ambiente de desenvolvimento rodando rapidamente e totalmente independente de nossa maquina.

Rodando MySQL no Docker

Docker

Para facilitar muito a nossa vida de desenvolvedor temos o Docker com seus containers que até parecem mágicos. Neste post vou mostrar como subir um servidor MySQL rapidamente para testes ou uso em um desenvolvimento de uma aplicação.

O primeiro passo é executar o comando setando alguns parâmetros, como o nome da imagem, variáveis ambientes do MySQL, o apontamento da porta externa e interna e por ultimo o nome da imagem no repositório oficial do Docker.

$ docker run --name byteslivres-mysql-1 -e MYSQL_ROOT_PASSWORD=12345 
-e MYSQL_DATABASE=teste -d -p 13306:3306 mysql:5.7.10

Pronto. Depois deste comando o MySQL estará rodando em sua maquina. Para testar abra seu gerenciador de banco de dados e tente conectar com a seguintes configurações:

Host: localhost
Porta: 13306
Usuário: root
Senha: 12345

Tudo dando certo ira aparecer no seu gerenciador o banco de dados teste vazio. Bem agora para pararmos o servidor basta utilizar o seguinte comando:

$ docker stop  byteslivres-mysql-1

Pronto. Caso queira subir novamente o mesmo banco não é necessário utilizar o primeiro comando mostrado. Basta utilizar este comando:

$ docker start  byteslivres-mysql-1