O Docker é uma plataforma de virtualização de containers, que permite executar aplicações em ambientes isolados, sem interferir no sistema operacional do host. Com o Docker, é possível criar, distribuir e executar containers de forma rápida e fácil, em qualquer plataforma.
O Docker é baseado em três componentes principais: o Docker Engine, o Docker Hub e o Docker Compose. O Docker Engine é o núcleo da plataforma, responsável por executar e gerenciar os containers. O Docker Hub é um repositório público de imagens de containers, onde é possível encontrar imagens prontas para uso ou publicar suas próprias imagens. O Docker Compose é uma ferramenta para definir e executar aplicativos multi-container.
Para começar a usar o Docker, é necessário instalar o Docker Engine no host. O Docker Engine está disponível para diversas plataformas, incluindo Linux, macOS e Windows. Após a instalação, é possível criar e executar containers a partir de imagens disponíveis no Docker Hub.
Para criar uma aplicação LAMP com WordPress utilizando o Docker, é necessário criar um Dockerfile que define a imagem do container a ser criado. O Dockerfile é um arquivo de texto que contém instruções para a criação da imagem. No exemplo a seguir, vamos criar uma imagem com o Apache, o PHP e o MySQL, e instalar o WordPress:
FROM php:7.4-apache
RUN apt-get update && \
apt-get install -y \
libjpeg-dev \
libpng-dev \
libxml2-dev \
libzip-dev \
unzip \
wget \
mysql-client && \
docker-php-ext-configure gd --with-jpeg && \
docker-php-ext-install gd mysqli pdo pdo_mysql zip soap
RUN a2enmod rewrite && \
service apache2 restart
RUN wget https://wordpress.org/latest.tar.gz && \
tar -xzvf latest.tar.gz && \
mv wordpress/* /var/www/html/ && \
chown -R www-data:www-data /var/www/html/ && \
rm -rf latest.tar.gz wordpress
ENV MYSQL_ROOT_PASSWORD=root \
MYSQL_DATABASE=wordpress \
MYSQL_USER=wordpress \
MYSQL_PASSWORD=wordpress
COPY ./wordpress.sql /docker-entrypoint-initdb.d/
O Dockerfile começa com a instrução FROM, que define a imagem base da qual a imagem será criada. Neste caso, estamos utilizando a imagem php:7.4-apache, que já contém o Apache e o PHP instalados.
As instruções seguintes instalam algumas dependências necessárias para o WordPress, como as bibliotecas GD, mysqli, pdo e pdo_mysql, e o pacote mysql-client. Também é habilitado o módulo rewrite do Apache, necessário para permitir a reescrita de URLs, e é reiniciado o serviço do Apache.
A seguir, é baixado e instalado o WordPress. O arquivo latest.tar.gz é baixado a partir do site oficial do WordPress e descompactado na pasta /var/www/html/. Em seguida, é alterado o proprietário da pasta para o usuário www-data, que é o usuário padrão do Apache.
Por fim, é definida a variável de ambiente MYSQL_ROOT_PASSWORD, que define a senha do usuário root do MySQL, e copiado o arquivo wordpress.sql para a pasta /docker-entrypoint-initdb.d/. Este arquivo contém o script SQL para criar o banco de dados do WordPress.
Após criar o Dockerfile, é necessário construir a imagem do container. Para isso, basta executar o seguinte comando no diretório onde o Dockerfile está salvo:
docker build -t nome-da-imagem .
O comando docker build cria uma nova imagem a partir do Dockerfile, e a opção -t define um nome para a imagem. O ponto final indica que o contexto de construção é o diretório atual.
Após a construção da imagem, é possível executar o container a partir dela. Para isso, é necessário definir algumas variáveis de ambiente, como a porta a ser utilizada pelo Apache e as configurações do MySQL:
docker run -d --name nome-do-container \
-p 8080:80 \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=wordpress \
nome-da-imagem
O comando docker run cria um novo container a partir da imagem, e a opção -d indica que o container será executado em segundo plano. A opção –name define um nome para o container.
A opção -p define a porta do host que será mapeada para a porta do container. Neste exemplo, a porta 8080 do host é mapeada para a porta 80 do container.
As opções -e definem as variáveis de ambiente para o container, que são utilizadas para configurar o MySQL.
Por fim, é passado o nome da imagem para criar o container a partir dela.
Após a execução do container, é possível acessar o WordPress pelo navegador, digitando o endereço http://localhost:8080 na barra de endereço. O WordPress irá solicitar a configuração inicial do banco de dados, e após isso é possível começar a utilizar a aplicação.
Em resumo, o Docker é uma plataforma de virtualização de containers que permite criar, distribuir e executar aplicações em ambientes isolados. Utilizando o Docker, é possível criar imagens de containers a partir de arquivos Dockerfile, e executar containers a partir dessas imagens. No exemplo apresentado, criamos uma imagem com o Apache, o PHP e o MySQL, e instalamos o WordPress. Após construir a imagem, criamos um container a partir dela, mapeando a porta do host para a porta do container. Com isso, foi possível acessar o WordPress pelo navegador e começar a utilizar a aplicação. O Docker é uma ferramenta poderosa para desenvolvedores e administradores de sistemas, que facilita a criação e distribuição de aplicações em qualquer plataforma.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.