Como instalar o WordPress em contentores Docker
Descubra como instalar o WordPress em contentores Docker, tanto manualmente como com o Docker Compose. Para os programadores de WordPress, esta opção é especialmente útil. O Docker permite-lhe testar várias configurações do WordPress e colocar em funcionamento uma nova instalação com apenas alguns comandos.
Requisitos
Para que o WordPress funcione corretamente em contentores Docker, é necessária uma distribuição Linux atualizada e com suporte. Versões anteriores, como o CentOS 7 ou o Ubuntu 14.04, estão obsoletas e devem ser substituídas por alternativas mais recentes. Recomenda-se:
- Ubuntu 22.04 LTS ou uma versão mais recente
- Debian 12 ou uma versão mais recente
- Uma versão atual do Red Hat Enterprise Linux (RHEL) ou AlmaLinux
Além disso, o Docker deve estar instalado e pronto a ser utilizado. A versão mínima recomendada é o Docker 20.10 ou superior, para que possa beneficiar das mais recentes melhorias em termos de segurança e desempenho. Se pretender utilizar o Docker Compose, certifique-se de que possui, pelo menos, a versão 2.x, uma vez que as versões anteriores já não recebem atualizações.
É útil ter conhecimentos básicos sobre a utilização da linha de comandos, bem como sobre como utilizar o Docker Compose e o Docker. Para configurações mais abrangentes ou escaláveis, também deve familiarizar-se com o Kubernetes para orquestrar contentores a nível profissional.
Executar o WordPress em contentores Docker
Uma instalação do WordPress requer três componentes:
- O software WordPress
- Uma base de dados MySQL ou MariaDB
- Os passos finais da instalação através do navegador
Nos exemplos a seguir, o WordPress e o MySQL/MariaDB são executados em contentores separados, mas interligados. O contentor com o WordPress é mapeado para uma porta do host, para que possas aceder-lhe a partir do teu navegador.
Executar um contentor MySQL/MariaDB
Depois de iniciar o Docker, o primeiro passo é configurar a base de dados. Para tal, começa por executar um contentor chamado my-db. Podes utilizar tanto o MySQL como o MariaDB, uma vez que o MariaDB é compatível com o MySQL.
MySQL
Inicie o contêiner com o comando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mysql:latestMariaDB
Inicie o contêiner com o comando:
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mariadb:latestCriar a base de dados
Depois de criar o seu contentor, deve criar uma base de dados que irá utilizar para a sua instalação do WordPress.
MySQL
Ligue-se ao seu contentor de base de dados recém-criado com o seguinte comando:
docker exec -it my-db mysql -u root -pCrie uma base de dados:
CREATE DATABASE wordpress-db;MariaDB
Ligue-se ao seu contentor de base de dados recém-criado com o seguinte comando:
docker exec -it my-db mariadb -u root -pCrie uma base de dados:
CREATE DATABASE wordpress-db;Executar um contentor do WordPress
Agora, execute um contentor com a imagem oficial do WordPress, atribuído à porta 8080 e ligado à base de dados.
Duas esclarecimentos:
- Se estiver a utilizar uma firewall, poderá ser necessário permitir o acesso à porta 8080.
- Se já tiver outro serviço a ser executado na porta 8080, pode escolher outra porta no host.
O comando varia ligeiramente, dependendo se está a utilizar o MySQL ou o MariaDB:
MySQL
Inicie um contêiner do WordPress com o seguinte comando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latestMariaDB
Inicie um contêiner do WordPress com o seguinte comando:
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latestExistem muitas outras variáveis de ambiente que pode adicionar a este comando se pretender substituir os valores predefinidos, incluindo:
-e WORDPRESS_DB_HOST=[hostname]: por predefinição, são utilizados o endereço IP e a porta do contentor MySQL/MariaDB associado. Esta variável permite ligar-se a uma base de dados MySQL/MariaDB alojada noutro servidor.-e WORDPRESS_DB_USER=[username]: o valor por defeito é root.-e WORDPRESS_DB_PASSWORD=[password]: por predefinição, é utilizada a variável de ambiente MYSQL_ROOT_PASSWORD do contentor MySQL/MariaDB associado.-e WORDPRESS_DB_NAME=[name]: o valor predefinido é “wordpress”.
Para maior segurança, pode ser útil não executar os contentores na rede de ponte padrão. Em vez disso, pode utilizar-se uma rede própria:
docker network create my-wp-network
docker run --name my-db --network my-wp-network -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mysql:latest
docker run --name my-wordpress --network my-wp-network -p 8080:80 -d wordpress:latestbashAqui, os seus contentores estão mais isolados dos outros contentores, o que reduz o risco de ligações indesejadas. Além disso, as regras de rede podem ser configuradas com maior detalhe, por exemplo, através de regras especiais de firewall ou da utilização de um proxy inverso.
Concluir a instalação a partir do navegador
Para concluir os últimos passos da instalação, deve aceder ao contêiner do WordPress através de um navegador.
No exemplo anterior, atribuímos a porta 8080 do host à porta 80 (Webservices) do contentor. Desta forma, pode aceder ao contentor a partir de um navegador utilizando o endereço IP ou a URL do servidor:
- http://
- http://example.com
Aceda a essa URL no navegador, selecione o idioma de instalação e clique em «Continue» (Continuar).

Na página seguinte, receberás instruções que te prepararão para a instalação adicional. Clica no botão «Let’s go!» para continuar.

Introduza os dados da sua base de dados para gerar o ficheiro wp-config.php.

Tenha em atenção que o utilizador predefinido, salvo indicação em contrário, é «root». Introduza aqui o nome da base de dados que criou e a palavra-passe que escolheu. Ao clicar em «Submit» (Enviar), continuará com o processo de instalação.

- Título do site: introduza o título do seu site.
- Nome de utilizador: este será o nome de utilizador principal com privilégios administrativos. Dica: por motivos de segurança, evite usar «Admin» ou o nome/URL da sua página como nome de utilizador.
- Palavra-passe: anote esta palavra-passe antes de continuar.
- O seu e-mail: endereço de e-mail associado ao utilizador administrador principal.
Clique no botão «Install WordPress» (Instalar o WordPress) para concluir a instalação.

Se a instalação tiver sido concluída com sucesso, receberás uma mensagem de confirmação e já poderás iniciar sessão no WordPress.
Executar o WordPress com o Docker Compose
A utilização do Docker Compose para executar o WordPress também é uma opção. Podes encontrar informações sobre a instalação e a utilização do Docker Compose no nosso artigo«Docker Compose e Docker Swarm: orquestração de contentores Docker»para mais informações. Basicamente, esta ferramenta permite-te definir todos os serviços necessários num único ficheiro e iniciá-los em conjunto.
Criar o ficheiro YAML
Primeiro, crie uma pasta para o seu projeto e aceda a ela:
sudo mkdir wordpress
cd wordpressCrie um ficheiro YAML chamado docker-compose.yml com o seguinte comando:
sudo nano docker-compose.ymlO conteúdo do ficheiro varia ligeiramente, dependendo se utiliza o MySQL ou o MariaDB.
MySQL
Adicione o seguinte ao ficheiro:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mysql
ports:
- 8080:80
wordpress_db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: CONTRASEÑA_SEGURAGuarde e feche o ficheiro.
MariaDB
Adicione o seguinte ao ficheiro:
wordpress:
image: wordpress:latest
links:
- wordpress_db:mariadb
ports:
- 8080:80
wordpress_db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: CONTRASEÑA_SEGURAGuarde e feche o ficheiro.
Iniciar os contentores
Em seguida, utilize o Docker Compose para iniciar estes contentores com o seguinte comando:
sudo docker-compose up -dCom este comando, pode verificar se os contentores foram criados:
sudo docker-compose psPara concluir a instalação, aceda ao contêiner do WordPress num navegador. Utilize o endereço IP ou a URL do servidor:
- http://192.168.0.1
- http://example.com
Kubernetes para implementações escaláveis do WordPress
Para configurações de maior dimensão e ambientes de produção, pode utilizar o Kubernetes (K8s). Com o Kubernetes, os contentores do WordPress podem ser orquestrados e geridos automaticamente através de vários nós. A utilização de um cluster do Kubernetes oferece vantagens como escalabilidade automática, mecanismos de autorrecuperação (self-healing) e gestão centralizada de recursos. Uma forma de implementação é através do Helm, um gestor de pacotes para o Kubernetes:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancerbashIsto garante uma implementação do WordPress à prova de falhas e escalável, com balanceamento de carga, atualizações automáticas e suporte à comutação por falha.