# WordPress na AWS com Docker: do zero ao ar em uma EC2

> Como rodar WordPress numa EC2 Linux com Docker e Docker Compose, usando o modelo pronto do Docker Hub, e abrir o site pelo IP público.

- Autor: Henrylle Maia, consultor AWS
- Publicado em: 2026-10-15
- Assuntos: Containers, Migração
- URL: https://pages.formacaoaws.com.br/blog/wordpress-na-aws-com-docker/
- Aula de origem: "Rodando Wordpress na AWS usando Docker em 8 minutos" (https://www.youtube.com/watch?v=DhwV3cMBjjA)

Dá para ter um WordPress rodando na AWS em poucos minutos: uma instância EC2 com Docker e o modelo de Docker Compose que o próprio WordPress publica no Docker Hub. Abaixo eu lanço a instância, instalo o Docker e o Docker Compose, ajusto a porta do modelo e abro o site pelo IP público.

> **Importante:** a aula é de abril de 2022, com as telas do console e as versões daquela época (Docker 20.10.7 e Docker Compose 1.29.2). Antes de repetir, confira como instalar o Docker e o Compose na documentação oficial: [docs.docker.com/compose/install](https://docs.docker.com/compose/install/).

## O cenário: uma instância só

O objetivo é um só: lançar uma EC2 Linux rodando WordPress. É uma instância apenas. Alta disponibilidade e volume elástico ficam de fora, são assuntos complementares e pertinentes, mas outro passo.

O Docker e o Docker Compose entram para ajudar no processo. O Compose pega o modelo que o WordPress já publica e faz boa parte do trabalho: sobe o site e o banco a partir de um arquivo. Se você ainda não conhece Docker, comece por [o que é Docker](https://pages.formacaoaws.com.br/blog/o-que-e-docker/); para o assunto dos volumes, veja [volume no Docker](https://pages.formacaoaws.com.br/blog/volume-no-docker-windows-e-linux/).

## Passo 1: lançar a EC2

No console, em Launch Instance, escolha:

- **AMI:** Amazon Linux (no terminal da aula aparece como Amazon Linux 2).
- **Tipo:** t2.micro ou t3.micro. Eu usei a t3.micro, que atende bem.
- **IP público:** Auto Assign Public IP habilitado, para a instância ser acessível pela internet.
- **Disco:** 8 GB, que resolve para um laboratório.
- **Nome:** `aula WordPress`.

## Passo 2: o security group

Crie um security group (eu chamei de `aula WordPress`, com a mesma descrição) com duas regras de entrada:

- **SSH:** só para o seu IP.
- **HTTP (porta 80):** para o mundo inteiro, porque o site precisa ser acessado de qualquer lugar.

Em seguida escolha o par de chaves. Eu usei uma que já tinha. No Linux, dê a ela a permissão `chmod 400`. No Windows, dê só permissão de execução. Lance a instância e espere o estado `running`.

## Passo 3: conectar e instalar o Docker

Copie o comando de conexão que o console mostra em Connect, rode no terminal na pasta da chave e responda `yes` à pergunta sobre o host.

Instale o Docker (na aula ele veio do repositório `amzn2extra-docker`, versão 20.10.7) e confirme com `y`. Depois suba o serviço, habilite no boot, dê ao usuário permissão no grupo `docker`, para não trabalhar como root, e reinicie:

```bash
sudo amazon-linux-extras install docker
sudo service docker start
sudo systemctl enable docker.service
sudo usermod -a -G docker ec2-user
sudo chkconfig docker on
sudo reboot
```

O Docker já funcionaria sem o reboot. Eu reinicio para deixar tudo apto a subir sozinho quando a máquina reiniciar. O reboot leva uns 30 segundos; conecte de novo depois.

## Passo 4: instalar o Docker Compose

Baixe o binário, mova para uma pasta que esteja no PATH, dê permissão de execução e confira as versões:

```bash
sudo wget -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)"
sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
docker -v
```

Na aula, o primeiro mostrou a versão 1.29.2 e o segundo, a 20.10.7. Com os dois respondendo, o ambiente está pronto.

## Passo 5: pegar o modelo do WordPress no Docker Hub

Busque "WordPress Docker Hub" e abra a [página da imagem oficial](https://hub.docker.com/_/wordpress), que já passou de um bilhão de downloads. Ali tem um modelo de Docker Compose pronto, com a imagem do WordPress, o `restart: always`, a porta, as variáveis do banco, o volume e a imagem do MySQL.

![O docker-compose.yml aberto no nano, com o serviço wordpress e a porta já em 80:80](https://pages.formacaoaws.com.br/blog/assets/posts/wordpress-na-aws-com-docker/compose-porta-80.webp)

Copie o modelo, crie uma pasta, entre nela e crie o arquivo colando o conteúdo:

```bash
mkdir wordpress
cd wordpress
nano docker-compose.yml
```

No modelo a porta vem como `8080:80`. Troque para `80:80`: porta 80 no container e porta 80 no host, a mesma que o security group libera. Salve.

> **Importante:** o modelo traz usuário e senha de exemplo (`exampleuser`, `examplepass`). Serve para o laboratório; num site de verdade, troque por valores seus antes de subir.

## Passo 6: subir e abrir o site

Rode, dentro da pasta do arquivo:

```bash
docker-compose up -d
```

O comando segue o arquivo de exemplo: baixa as imagens do WordPress e do MySQL, extrai e executa os dois containers. Quando as duas linhas `Creating ... done` aparecem, está no ar.

![O terminal ao fim do docker-compose up: as imagens do WordPress e do mysql:5.7 baixadas e os containers wordpress_wordpress_1 e wordpress_db_1 criados](https://pages.formacaoaws.com.br/blog/assets/posts/wordpress-na-aws-com-docker/compose-up-pronto.webp)

Pegue o IP público da instância no console, cole no navegador com `http://` e a instalação do WordPress abre. Preencha o título do site e o nome do usuário e instale. Ele reclama se faltar o e-mail, então preencha esse campo também. Entre, e o painel aparece.

![O painel do WordPress aberto no IP da instância, com a mensagem Bem-vindo(a) ao WordPress e a versão 5.9.2](https://pages.formacaoaws.com.br/blog/assets/posts/wordpress-na-aws-com-docker/painel-wordpress.webp)

**Fluxo:** EC2 (Amazon Linux, porta 80 aberta) → Docker (instalado e habilitado no boot) → docker-compose.yml (modelo do Docker Hub) → WordPress e MySQL (dois containers no ar)

Da introdução até o painel, foram uns 9 minutos de aula: EC2 rodando, Docker, Docker Compose e WordPress na AWS. Daqui você segue para criar as páginas do seu site.

## O que este laboratório não é

Isto é um modelo de demonstração, com uma instância. O WordPress pode rodar em alta disponibilidade, com um Application Load Balancer na frente de várias instâncias e escalando. Para isso você precisa operar bem Docker e Docker Compose e usar um serviço de orquestração. Na AWS, você pode usar o ECS.

Os próximos passos estão nestes posts: [o que mudar na aplicação em container para ser altamente disponível](https://pages.formacaoaws.com.br/blog/docker-alta-disponibilidade-na-aws/) e [Docker Compose na prática](https://pages.formacaoaws.com.br/blog/docker-compose-na-pratica/). Se você pensa em hospedar WordPress e quer saber quanto isso custa, veja [o custo de WordPress na AWS](https://pages.formacaoaws.com.br/blog/custo-wordpress-na-aws/).

## Checklist

- Lancei uma EC2 Amazon Linux t2.micro ou t3.micro, com IP público e disco de 8 GB.
- Liberei SSH só para o meu IP e HTTP (porta 80) para o mundo.
- Instalei o Docker, habilitei no boot, dei permissão ao `ec2-user` e reiniciei.
- Instalei o Docker Compose e conferi as versões com `-v`.
- Peguei o modelo do WordPress no Docker Hub e troquei a porta para `80:80`.
- Subi com `docker-compose up -d` e abri o site pelo IP público.

Se você quer levar um site como esse para a AWS com custo, segurança e disponibilidade pensados desde o começo, converse com o time sobre o seu cenário.
