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 upgradePor 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.ioQuando a instalação estiver concluída, inicie o docker e adicione-o para iniciar automaticamente na inicialização:
systemctl start docker
systemctl enable dockerAgora teste sua instalação do docker com o comando abaixo:
docker run hello-worldVocê 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-pipEm seguida, instale o docker-compose com o comando pip:
pip install docker-composeaguarde o processo de instalação terminar. Então verifique a instalação com o comando docker-compose:
docker-compose -vVocê 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 hakaseAgora 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 dockerFaç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.confCole 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.ymlDefina 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: alwaysEm 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: alwaysEntã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: alwaysApó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 -dVocê 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 psAbaixo está o resultado:

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 wordpressLogs do contêiner:

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 -plntuOs resultados estão abaixo:

Agora abra seu navegador web e digite o URL ou endereço IP do servidor.
Você pode ver a página de instalação do WordPress. Escolha seu idioma e clique em ‘Continuar‘.

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‘.

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

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

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 psJá 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 bashnginx: 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
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 MYSQLVeja a lista de bancos de dados:
show databases;Você verá nosso banco de dados WordPress.

No contêiner ‘wordpress’, você verá todos os arquivos do WordPress.
docker-compose exec wordpress bash
ls -lahTodos os contêineres são acessíveis.
Referência
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.