Docker Wordpress · 8 min read · Oct 14, 2025

Dockerizando Wordpress com Nginx e PHP-FPM no Ubuntu 16.04

Docker-Compose é uma ferramenta de linha de comando para definir e gerenciar contêineres docker multi-contêiner como se fossem um único serviço. O Compose é escrito em python e pode ser instalado com o comando pip do Python. Com o compose, podemos executar múltiplos contêineres docker com um único comando. Ele permite que você crie um contêiner como um serviço, ótimo para seu ambiente de desenvolvimento, teste e homologação.

Neste tutorial, eu vou guiá-lo passo a passo para usar o docker-compose. Vamos implantar ‘Wordpress‘ com Nginx, MySQL e PHP-FPM. Cada serviço tem seu próprio contêiner, e usaremos imagens do registro docker hub. Eu vou mostrar como criar contêineres a partir de imagens docker e gerenciar todos os contêineres com docker-compose.

Pré-requisitos

  • Ubuntu 16.04
  • Privilégios de Root

Passo 1 - Instalar Docker

Vamos começar do zero, instalando o docker e o docker compose manualmente com o comando apt.

Antes de começarmos, atualize o repositório do Ubuntu e instale as últimas atualizações:

sudo apt-get update  
sudo apt-get upgrade

Por padrão, o docker está disponível no repositório do Ubuntu, então podemos continuar a instalá-lo imediatamente:

sudo apt-get install -y docker.io

Quando a instalação estiver concluída, inicie o docker e adicione-o para iniciar automaticamente na inicialização:

systemctl start docker  
systemctl enable docker

Agora teste sua instalação do docker com o comando abaixo:

docker run hello-world

Você verá hello-world do docker.

Passo 2 - Instalar Docker-Compose

Docker-compose é um script escrito em python, está disponível no repositório PyPI do python e pode ser instalado com o pip do python. Então, precisamos instalar o python e o pip do python em nosso sistema primeiro.

Instale o python e o python-pip:

sudo apt-get install -y python python-pip

Em seguida, instale o docker-compose com o comando pip:

pip install docker-compose

aguarde o processo de instalação terminar. Então verifique a instalação com o comando docker-compose:

docker-compose -v

Você obterá a versão do docker-compose.

Passo 3 - Configurar Wordpress

Agora, o docker e o docker-compose estão instalados no sistema. Neste passo, vou mostrar como criar e configurar o ambiente docker-compose para nosso projeto WordPress.

Vamos implantar o aplicativo PHP ‘Wordpress’ com Nginx como servidor web, e MariaDB para o banco de dados MySQL como contêineres docker gerenciados pelo docker-compose. Cada aplicativo (Wordpress, Nginx e MySQL) será executado em seu próprio contêiner, você pode ver a lista abaixo:

  • Nginx: Usamos a imagem oficial do docker, versão mais recente ‘nginx:latest’.

  • Wordpress: Wordpress fornece algumas imagens docker no docker-hub, e usaremos WordPress 4.7 com PHP-FPM 7.0 nele.

  • MySQL: Usaremos o contêiner oficial do MariaDB, versão mais recente.

Então precisamos de 3 imagens docker do registro docker hub.

Não vamos executar o docker como root, usaremos um usuário Linux normal. Então, apenas crie um novo usuário com o comando abaixo (sinta-se à vontade para usar um nome de usuário diferente aqui, apenas certifique-se de que o usuário ainda não exista. Se você escolher um nome diferente, certifique-se de mudá-lo em todos os comandos que seguem neste tutorial):

useradd -m -s /bin/bash hakase  
passwd hakase

Agora adicione o usuário ao grupo ‘docker‘ para que o usuário possa usar o comando docker, e reinicie o serviço docker:

usermod -a -G docker hakase  
systemctl restart docker

Faça login no usuário ‘hakase’ e crie um novo diretório para o projeto WordPress:

su - hakase  
mkdir -p wordpress-compose  
cd wordpress-compose/

Em seguida, crie um novo arquivo chamado ‘docker-compose.yml‘, e crie um novo diretório para o projeto. Basta digitar os comandos abaixo:

touch docker-compose.yml  
mkdir -p nginx/  
mkdir -p db-data/  
mkdir -p logs/nginx/  
mkdir -p wordpress/

Lista de Arquivos e Diretórios do projeto:

  • docker-compose.yml: Este é o arquivo de configuração do docker-compose, você deve criá-lo ao iniciar um novo projeto docker-compose.

  • nginx/: Este diretório é usado para nossa configuração adicional do nginx, como o host virtual etc.

  • db-data/: O volume/diretório para os dados do mysql. Os dados sql de ‘/var/lib/mysql’ são montados no diretório db-data.

  • logs/: Diretório para logs de aplicação, nginx, mariadb e php-fpm.

  • wordpress/: Todos os arquivos do wordpress estarão disponíveis nesse diretório.

No diretório ‘nginx’, crie um novo arquivo de configuração para nosso host virtual do wordpress.

Crie um novo arquivo wordpress.conf:

vim nginx/wordpress.conf

Cole a configuração abaixo:

server {  
    listen 80;  
    server_name wp-hakase.co;  
   
    root /var/www/html;  
    index index.php;  
   
    access_log /var/log/nginx/hakase-access.log;  
    error_log /var/log/nginx/hakase-error.log;  
   
    location / {  
        try_files $uri $uri/ /index.php?$args;  
    }  
   
    location ~ \.php$ {  
        try_files $uri =404;  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        fastcgi_pass wordpress:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_param PATH_INFO $fastcgi_path_info;  
    }  
}

Salve o arquivo e saia do vim.

Passo 4 - Configurar Docker-Compose

Neste passo, começaremos a editar o arquivo docker-compose.yml. Quando você quiser iniciar o projeto docker-compose, certifique-se de criar o arquivo docker-compose.yml primeiro, como fazemos abaixo.

Edite o docker-compose.yml com vim:

vim docker-compose.yml

Defina seus serviços, na primeira linha definiremos o Nginx. Estamos usando a imagem oficial do docker do Nginx, a versão mais recente, e configuramos o mapeamento de portas para a porta 80 no contêiner para a porta 80 no host. Em seguida, configure os volumes do docker, o volume para nossa configuração do host virtual do Nginx, volume para os arquivos de log do Nginx e o volume do diretório raiz da web ‘/var/www/html’. O contêiner Nginx está vinculado ao contêiner WordPress.

Cole a configuração abaixo:

nginx:  
    image: nginx:latest  
    ports:  
        - '80:80'  
    volumes:  
        - ./nginx:/etc/nginx/conf.d  
        - ./logs/nginx:/var/log/nginx  
        - ./wordpress:/var/www/html  
    links:  
        - wordpress  
    restart: always

Em seguida, defina o servidor MySQL. Estamos usando a imagem do MariaDB, versão mais recente. Configure o mapeamento de portas para o contêiner na porta 3306, e configure a senha root do MySQL com a variável de ambiente ‘MYSQL_ROOT_PASSWORD’. Finalmente, configure o volume do contêiner para o diretório de dados do MySQL.

Cole a configuração abaixo:

mysql:  
    image: mariadb  
    ports:  
        - '3306:3306'  
    volumes:  
        - ./db-data:/var/lib/mysql  
    environment:  
        - MYSQL_ROOT_PASSWORD=aqwe123  
    restart: always

Então, configuraremos o serviço WordPress usando a imagem docker do WordPress 4.7 com PHP-FPM 7.0 instalado. Configure a porta para PHP-fpm na porta 9000, habilite o volume docker para o diretório web ‘/var/www/html’ para o diretório host ‘wordpress’, configure o banco de dados definindo a variável de ambiente do WordPress, e vincule o serviço WordPress ao mysql.

Cole a configuração abaixo:

wordpress:  
    image: wordpress:4.7.1-php7.0-fpm  
    ports:  
        - '9000:9000'  
    volumes:  
        - ./wordpress:/var/www/html  
    environment:  
        - WORDPRESS_DB_NAME=wpdb  
        - WORDPRESS_TABLE_PREFIX=wp_  
        - WORDPRESS_DB_HOST=mysql  
        - WORDPRESS_DB_PASSWORD=aqwe123  
    links:  
        - mysql  
    restart: always

Após adicionar as três partes no arquivo docker-compose.yml, salve o arquivo e saia do editor vim.

Nossa configuração do docker-compose está pronta.

Passo 5 - Executar Docker-compose

Comece a criar os novos contêineres com o docker compose. Vá para o diretório wordpress-compose e inicie os novos contêineres com base em nosso arquivo compose.

cd ~/wordpress-compose/  
docker-compose up -d

Você pode ver os resultados do comando. Três contêineres foram criados. Vamos verificar o status do contêiner com a opção ps:

docker-compose ps

Abaixo está o resultado:

Iniciar Docker-compose Wordpress

Se você quiser ver a saída do log do contêiner, pode usar os comandos abaixo:

docker-compose logs nginx  
docker-compose logs mysql  
docker-compose logs wordpress

Logs do contêiner:

um exemplo para o comando de logs do docker-compose

Nota:
Se você ver no log do contêiner WordPress um erro sobre a conexão MySQL recusada, ignore-o.

Passo 6 - Instalar Wordpress

Antes de fazermos este passo, vamos verificar as portas disponíveis/portas abertas no sistema. Certifique-se de que você tenha 3 portas abertas, porta 80, 3306 e porta 9000.

netstat -plntu

Os resultados estão abaixo:

Porta aberta docker

Agora abra seu navegador web e digite o URL ou endereço IP do servidor.

http://serverIP/

Você pode ver a página de instalação do WordPress. Escolha seu idioma e clique em ‘Continuar‘.

Instalação do Wordpress defina o idioma

Preencha os detalhes do seu site, como título do site, usuário admin e senha, seu endereço de e-mail e clique em ‘Instalar Wordpress‘.

Instalar Wordpress Preencher Configuração de Usuário e Site

Você será redirecionado para o ‘Painel de Administração do Wordpress‘.

Painel de Administração do Wordpress Docker-Compose

E este é meu post de exemplo do WordPress hello world.

Wordpress com Docker-Compose

Wordpress foi instalado com docker-compose.

Passo 7 - Acessando o Contêiner Docker

Este é um passo adicional sobre como acessar um contêiner com docker-compose. Verifique se todos os contêineres estão disponíveis e mostre seu status:

docker-compose ps

Já temos 3 contêineres, agora podemos tentar fazer login em cada contêiner. Faça login no primeiro contêiner Nginx com o comando docker-compose.

docker-compose exec nginx bash

nginx: nome do serviço no arquivo docker-compose docker-compose.yml

bash: execute o comando shell bash

Agora verifique nossa configuração do host virtual do WordPress.

cat /etc/nginx/conf.d/wordpress.conf

Serviço docker compose Nginx

Os arquivos estão disponíveis no contêiner.

Em seguida, tente fazer login no contêiner mysql e, em seguida, faça login no shell mysql com nossa senha no arquivo compose.

docker-compose exec mysql bash  
mysql -u root -p  
DIGITE A SENHA ROOT DO MYSQL

Veja a lista de bancos de dados:

show databases;

Você verá nosso banco de dados WordPress.

Serviço Docker Compose MySQL

No contêiner ‘wordpress’, você verá todos os arquivos do WordPress.

docker-compose exec wordpress bash  
ls -lah

Todos os contêineres são acessíveis.

Referência

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.