# 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](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/debian-o-software-universal-para-sistemas-operativos/) ou uma versão mais recente
- Uma versão atual do Red Hat Enterprise Linux (RHEL) ou AlmaLinux

Além disso, [o Docker](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/tutorial-do-docker-instalacao-e-primeiros-passos/) deve estar [instalado](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/tutorial-do-docker-instalacao-e-primeiros-passos/) 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](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/tutorial-do-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:

```none
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mysql:latest
```

#### MariaDB

Inicie o contêiner com o comando:

```none
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=CONTRASEÑA_SEGURA -d mariadb:latest
```

Nota Certifique-se de que utiliza uma palavra-passe segura para a sua base de dados. Guardar palavras-passe como variáveis de ambiente pode representar um risco de segurança. É preferível utilizar um **Docker Secret** ou um ficheiro de configuração protegido.

### Criar 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:

```none
docker exec -it my-db mysql -u root -p
```

Crie uma base de dados:

```none
CREATE DATABASE wordpress-db;
```

#### MariaDB

Ligue-se ao seu contentor de base de dados recém-criado com o seguinte comando:

```none
docker exec -it my-db mariadb -u root -p
```

Crie uma base de dados:

```none
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:

```none
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latest
```

#### MariaDB

Inicie um contêiner do WordPress com o seguinte comando:

```none
sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latest
```

Existem 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:

```bash
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:latest
```

Aqui, 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)**.

[![Imagem: Captura de pantalla de la selección de idioma en Wordpress](https://www.ionos.com/pt-pt/digitalguide/fileadmin/_processed_/f/7/csm_wp-docker-sprachauswahl_8c536f8b31.webp "Captura de pantalla de la selección de idioma en Wordpress")](https://www.ionos.com/pt-pt/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-sprachauswahl.png) Ahora puedes seleccionar el idioma de instalación desde tu navegador. 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.

[![Imagem: Captura de pantalla del aviso de instalación en Wordpress](https://www.ionos.com/pt-pt/digitalguide/fileadmin/_processed_/d/8/csm_wp-docker-hinweis_281c385036.webp "Captura de pantalla del aviso de instalación en Wordpress")](https://www.ionos.com/pt-pt/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-hinweis.png) El aviso de instalación de WordPress te informa sobre el siguiente paso del proceso de configuración. Introduza os dados da sua base de dados para gerar o ficheiro `wp-config.php`.

[![Imagem: Captura de pantalla de la conexión a la base de datos de Wordpress](https://www.ionos.com/pt-pt/digitalguide/fileadmin/_processed_/8/3/csm_wp-docker-db-informationen_2cbe26313e.webp "Captura de pantalla de la conexión a la base de datos de Wordpress")](https://www.ionos.com/pt-pt/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-db-informationen.png) Introduce la información solicitada sobre tu base de datos. 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.

[![Imagem: Captura de pantalla de la instalación de WordPress: información sobre la página web de WordPress](https://www.ionos.com/pt-pt/digitalguide/fileadmin/_processed_/c/a/csm_wp-docker-seiteninformationen_3240b49267.webp "Captura de pantalla de la instalación de WordPress: información sobre la página web de WordPress")](https://www.ionos.com/pt-pt/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-seiteninformationen.png) Introduce los datos requeridos para tu página web de WordPress. - **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.

[![Imagem: Captura de pantalla de la instalación completada](https://www.ionos.com/pt-pt/digitalguide/fileadmin/_processed_/2/7/csm_wp-docker-erfolg_4cfa7b77b0.webp "Captura de pantalla de la instalación completada")](https://www.ionos.com/pt-pt/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-erfolg.png) El mensaje de éxito indica que la instalación se ha completado correctamente. 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:

```none
sudo mkdir wordpress 
cd wordpress
```

Crie um ficheiro YAML chamado docker-compose.yml com o seguinte comando:

```none
sudo nano docker-compose.yml
```

O conteúdo do ficheiro varia ligeiramente, dependendo se utiliza o MySQL ou o MariaDB.

#### MySQL

Adicione o seguinte ao ficheiro:

```none
wordpress: 
    image: wordpress:latest 
    links: 
        - wordpress_db:mysql 
    ports: 
        - 8080:80 
wordpress_db: 
    image: mysql 
    environment: 
        MYSQL_ROOT_PASSWORD: CONTRASEÑA_SEGURA
```

Guarde e feche o ficheiro.

#### MariaDB

Adicione o seguinte ao ficheiro:

```none
wordpress: 
    image: wordpress:latest 
    links: 
        - wordpress_db:mariadb 
    ports: 
        - 8080:80 
wordpress_db: 
    image: mariadb 
    environment: 
        MYSQL_ROOT_PASSWORD: CONTRASEÑA_SEGURA
```

Guarde e feche o ficheiro.

### Iniciar os contentores

Em seguida, utilize o Docker Compose para iniciar estes contentores com o seguinte comando:

```none
sudo docker-compose up -d
```

Com este comando, pode verificar se os contentores foram criados:

```none
sudo docker-compose ps
```

Para 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:

```bash
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer
```

Isto garante uma implementação do WordPress à prova de falhas e escalável, com [balanceamento de carga](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/equilibrio-de-carga-conheca-em-profundidade-as-suas-vantagens/), atualizações automáticas e suporte à comutação por falha.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/wordpress-no-docker/](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/wordpress-no-docker/) for AI/LLM consumption.