Como Criar um Container Docker para WordPress com MySQL

O WordPress é um dos CMS (Content Management Systems) mais populares do mundo, e com o Docker, podemos criar rapidamente um ambiente isolado para desenvolvimento e produção. Este tutorial irá guiá-lo pela configuração de containers Docker para hospedar tanto o WordPress quanto o banco de dados MySQL.

Pré-requisitos

Antes de começar, certifique-se de ter o Docker e o Docker Compose instalados no seu sistema:

  1. Instalar o Docker
  2. Instalar o Docker Compose

Após isso, podemos iniciar o processo de configuração.

Passo 1: Criar o diretório do projeto

Crie um diretório para o projeto WordPress onde os arquivos de configuração do Docker serão salvos.

mkdir wordpress-docker
cd wordpress-docker

Passo 2: Criar o arquivo docker-compose.yml

Neste diretório, crie o arquivo docker-compose.yml, que irá definir os serviços do WordPress e do MySQL.

touch docker-compose.yml

Agora, abra o arquivo com seu editor de texto favorito (ex.: nano docker-compose.yml) e adicione o seguinte conteúdo:

version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress
    restart: always
    ports:
      - "8000:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content
    depends_on:
      - db

  db:
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
      MYSQL_ROOT_PASSWORD: root_password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

O que o arquivo docker-compose.yml faz?

  • Versão do Compose: Especificamos version: '3.8' para usar uma versão recente do Docker Compose.
  • Serviços:
  • WordPress:
    • Usa a imagem oficial wordpress:latest.
    • Define a porta do host 8000 para mapear para a porta interna do container 80 (porta padrão do WordPress).
    • Configura as variáveis de ambiente para se conectar ao banco de dados MySQL.
    • Mapeia um volume local ./wp-content para o diretório wp-content do WordPress (para persistir dados como plugins e temas).
  • MySQL:
    • Usa a imagem oficial mysql:5.7.
    • Define variáveis de ambiente para configurar o banco de dados, o usuário, e a senha.
    • Usa um volume nomeado db_data para persistir os dados do banco de dados.
  • Volumes:
  • Definimos o volume db_data para armazenar os dados do MySQL, de modo que, mesmo que o container seja removido, os dados permaneçam intactos.

Passo 3: Iniciar os containers

Com o arquivo docker-compose.yml pronto, você pode iniciar os containers executando o comando:

docker-compose up -d
  • A opção -d faz com que os containers rodem em segundo plano.
  • O Docker Compose irá baixar as imagens necessárias (WordPress e MySQL), criar os containers, e iniciar os serviços.

Passo 4: Verificar os containers

Para verificar se os containers foram criados corretamente, execute o comando:

docker-compose ps

Você deve ver algo assim:

   Name                 Command               State           Ports
------------------------------------------------------------------------
mysql        docker-entrypoint.sh mysqld      Up      3306/tcp
wordpress    docker-entrypoint.sh apach ...   Up      0.0.0.0:8000->80/tcp

Isso significa que tanto o MySQL quanto o WordPress estão em execução.

Passo 5: Configurar o WordPress

Agora, abra seu navegador e acesse http://localhost:8000. Você verá a página de configuração inicial do WordPress, onde poderá selecionar o idioma e configurar o nome do site, além de criar um usuário administrador.

  1. Escolha o idioma.
  2. Insira o nome do site, seu nome de usuário, senha e endereço de e-mail.
  3. Clique em Instalar WordPress.

Passo 6: Persistindo dados

  • Banco de dados: O MySQL armazena seus dados no volume db_data, o que significa que os dados persistirão mesmo que o container seja removido.
  • WordPress: Para garantir que o conteúdo do WordPress, como temas, plugins e uploads, seja preservado, o diretório wp-content foi mapeado para o diretório local ./wp-content no seu sistema host.

Passo 7: Gerenciamento dos Containers

Aqui estão alguns comandos úteis para gerenciar os containers:

  • Parar os containers:
  docker-compose down
  • Parar e remover os containers, volumes e redes:
  docker-compose down --volumes
  • Ver logs dos containers:
  docker-compose logs -f
  • Reiniciar os containers:
  docker-compose restart

Passo 8: Fazer backup do banco de dados

Para realizar um backup do banco de dados MySQL, você pode usar o seguinte comando:

docker exec mysql /usr/bin/mysqldump -u wordpress --password=wordpress wordpress > backup.sql

Isso criará um arquivo backup.sql com o conteúdo do banco de dados.

Conclusão

Você configurou com sucesso um ambiente WordPress usando Docker, com uma instância MySQL. Esse ambiente é ideal para desenvolvimento local, testes e até mesmo para pequenos sites em produção. Ao usar o Docker, você se beneficia de um ambiente isolado, rápido de configurar e fácil de gerenciar.

Edvaldo Guimrães Filho Avatar

Published by

Categories:

Leave a comment