# Curso de Docker do zero ao Compose: conheça a formação

> A Formação Docker, da FullStack Academy, é um curso de Docker para iniciantes que vai do primeiro container à orquestração de ambientes com Docker Compose. São 9 módulos e 91 aulas com projetos práticos, como WordPress + MySQL, PostgreSQL + pgAdmin e uma aplicação fullstack, no Windows (WSL2), macOS ou Linux, com garantia de 7 dias.

- URL: https://www.fullstackacademy.com.br/blog/curso-docker-zero-compose
- Autor: Odair Michael Bendotti
- Publicado em: 2026-10-05T01:22:55.111Z
- Atualizado em: 2026-10-05T01:22:55.122Z
- Categoria: DevOps
- Tags: docker, devops

O projeto roda na máquina do colega e quebra na sua. A versão do banco é outra, falta uma dependência, a porta já está ocupada. Um bom curso de Docker resolve exatamente esse problema: você aprende a empacotar a aplicação e todo o ambiente dela em containers que sobem iguais em qualquer computador.

Este post apresenta a [Formação Docker](/formacao-docker), o curso de Docker da FullStack Academy que leva você do primeiro container até ambientes completos orquestrados com Docker Compose.

## Para quem é a Formação Docker?

![Terminal docker compose up](https://fullstackacademy-uploads.s3.us-east-1.amazonaws.com/2026/10/b872941b-3af1-43fb-afc0-e986dcb673ca-1600.webp)

A Formação Docker é para devs iniciantes que querem aprender Docker do zero, sem experiência prévia com containers. Você só precisa saber usar o terminal no nível básico (abrir, navegar entre pastas e rodar um comando); o curso explica cada conceito antes do primeiro comando.

O [Docker](https://docs.docker.com/get-started/docker-overview/) é uma plataforma para criar, distribuir e executar aplicações em containers. O curso se encaixa bem em três perfis:

- **Quem está começando na programação** e ouve falar de Docker em toda vaga de emprego, mas nunca rodou um container.
- **Quem já usa Docker no trabalho, mas sem entender**: copia o `docker-compose.yml` do projeto, roda `docker compose up` e trava quando algo dá errado com volume, porta ou rede.
- **Quem cria projetos pessoais ou freelas** e quer subir banco de dados, cache e API sem instalar cada ferramenta direto no sistema operacional.

O curso funciona no Windows (com [WSL2](https://learn.microsoft.com/windows/wsl/)), no macOS e no Linux. Não é preciso saber programar em Node.js: os projetos usam ferramentas prontas e um template já estruturado, porque o objetivo é ensinar Docker, não uma linguagem.

Se você se viu num desses perfis, veja o conteúdo completo da formação.

[Conheça a Formação Docker](/formacao-docker)

## O que você aprende no curso de Docker?

A Formação Docker tem 9 módulos e 91 aulas, organizados na ordem em que o Docker é usado no dia a dia: primeiro imagens e containers, depois dados e redes, depois imagens próprias e, por último, a orquestração com [Docker Compose](https://docs.docker.com/compose/). Cada módulo usa o que o anterior ensinou, então o Docker Compose chega quando você já entende tudo o que um arquivo `compose.yaml` descreve.

1. **Fundamentos e Instalação do Docker:** o que é Docker, quais problemas resolve, máquinas virtuais vs. containers e a instalação recomendada.
2. **Trabalhando com Imagens Docker:** o que é uma imagem, como escolher imagens no [Docker Hub](https://hub.docker.com/) e como criar e atualizar a sua primeira.
3. **Criando e Gerenciando Containers:** portas (`-p`), nomes (`--name`), modo detached (`-d`), ciclo de vida, monitoramento de CPU e memória e um container do WordPress.
4. **Configurações Avançadas de Containers:** variáveis de ambiente, logs, containers temporários, acesso a containers em execução e um container do n8n.
5. **Persistência de Dados com Volumes:** [volumes](https://docs.docker.com/engine/storage/volumes/) e bind mounts no WSL2, Linux e macOS, permissões de arquivos e PostgreSQL com pgAdmin.
6. **Comunicação entre Containers com Redes:** [redes do Docker](https://docs.docker.com/engine/network/) (bridge, bridge customizada, host e none) e uma aplicação WordPress + MySQL com volumes, redes e variáveis de ambiente.
7. **Construindo Imagens com Dockerfile:** o [Dockerfile](https://docs.docker.com/reference/dockerfile/), `WORKDIR`, `.dockerignore`, `EXPOSE`, `ENV`, boas práticas para reduzir o tamanho da imagem e publicação no Docker Hub.
8. **Customizando Imagens e Atualizando Containers:** Docker para desenvolvimento, bind mount com detecção de alterações em tempo real e o problema do 'na minha máquina funciona' resolvido na prática.
9. **Orquestração de Ambientes com Docker Compose:** YAML, múltiplos containers, ordem de execução com healthcheck, volumes, variáveis externas, redes separadas, build de imagens e aplicações backend, frontend e fullstack.

![Terminal com docker ps listando containers do PostgreSQL e do pgAdmin em execução](https://fullstackacademy-uploads.s3.us-east-1.amazonaws.com/2026/10/2ddc0001-21eb-4136-97eb-18adf0521fcb-1200.webp "Print do terminal: docker ps mostrando os containers do PostgreSQL e do pgAdmin com as portas mapeadas")
![Diagrama de containers WordPress e MySQL conectados por uma rede Docker, com volume persistente](https://fullstackacademy-uploads.s3.us-east-1.amazonaws.com/2026/10/862ef450-b0e5-40d7-9c6a-b859464e30e6-1200.webp "Diagrama: WordPress e MySQL na mesma rede Docker, com os dados do MySQL guardados em um volume")

### Como cada comando aparece no curso?

Na Formação Docker, cada comando digitado no terminal também é mostrado no [Docker Desktop](https://docs.docker.com/desktop/), a interface gráfica oficial do Docker. Você roda `docker volume create` na linha de comando e vê o volume aparecer na interface, o que deixa visível o que acontece nos bastidores.

Um exemplo do tipo de comando que você passa a entender por completo depois do módulo 3:

```bash
# Sobe o WordPress em segundo plano, com nome e porta mapeada
docker run -d --name meu-wordpress -p 8080:80 wordpress

# Confere se o container está rodando
docker ps
```

## Quais projetos você constrói?

Você constrói projetos práticos com ferramentas reais, espalhados pelos módulos, e cada um treina um conceito específico do Docker. Os projetos começam com um único container e terminam com uma aplicação fullstack orquestrada pelo Docker Compose.

| Projeto | O que você pratica |
| --- | --- |
| [WordPress](https://wordpress.org/) + MySQL | Volumes, redes, variáveis de ambiente e Docker Compose |
| [n8n](https://docs.n8n.io/) | Containers, volumes e persistência de dados |
| [PostgreSQL](https://www.postgresql.org/docs/) + pgAdmin | Redes, volumes e banco de dados em container |
| Aplicação com [Express](https://expressjs.com/) | Dockerfile, EXPOSE e portas, publicação no Docker Hub |
| Node + Express + TypeScript + [Prisma](https://www.prisma.io/docs) | Bind mount, mudanças em tempo real e Dockerfile de um template full stack |
| Aplicação fullstack com Docker Compose | Backend, frontend e banco em redes separadas, com vários serviços |

O último projeto junta tudo em um arquivo do Docker Compose. Um exemplo simplificado de como fica um ambiente com API e banco:

```yaml
services:
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: senha
    volumes:
      - db-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s

  api:
    build: .
    ports:
      - "8080:3000"
    depends_on:
      db:
        condition: service_healthy

volumes:
  db-data:
```

O `depends_on` com `condition: service_healthy` faz a API esperar o banco ficar pronto, assunto das aulas sobre [ordem de inicialização no Docker Compose](https://docs.docker.com/compose/how-tos/startup-order/).

## O que torna este curso diferente?

A Formação Docker se diferencia por mostrar cada comando também no Docker Desktop, por funcionar igual nos três sistemas operacionais e por focar em desenvolvimento, sem desviar para infraestrutura de servidor.

- **CLI e Docker Desktop lado a lado:** cada comando do terminal é visto também na interface do Docker Desktop, para você enxergar imagens, containers, volumes e redes.
- **Windows (WSL2), macOS e Linux:** as aulas cobrem os três sistemas, inclusive as diferenças de bind mount e permissões em cada um.
- **Foco em desenvolvimento:** nada de enrolação com infraestrutura; o objetivo é você subir e manter seu ambiente de desenvolvimento com Docker e Docker Compose.
- **Projetos com ferramentas reais:** WordPress, MySQL, PostgreSQL, pgAdmin, n8n, Express e Prisma, em vez de exemplos abstratos.
- **Conteúdo atualizado continuamente:** as aulas acompanham as mudanças do Docker, como a troca do antigo `docker-compose` pelo comando `docker compose`.

> Criei a Formação Docker porque vi muita gente usar Docker por anos copiando comandos sem entender o que acontecia com os dados, as portas e as redes. Na minha opinião, o jeito mais rápido de aprender Docker de verdade é ver cada comando no terminal e no Docker Desktop ao mesmo tempo, construindo projetos reais. Foi assim que organizei cada módulo.
>
> — Odair Michael Bendotti, criador do curso

> **Garantia de 7 dias:** se a Formação Docker não for para você, o seu dinheiro é devolvido.

## Quando a Formação Docker não é o curso certo?

A Formação Docker não é o curso certo se você procura Kubernetes, deploy em produção ou administração de servidores. O conteúdo para no Docker Compose em ambiente de desenvolvimento.

Se o seu objetivo é orquestrar containers em cluster, o caminho natural é estudar [Kubernetes](https://kubernetes.io/docs/home/) depois. Imagens, containers, volumes, redes e Docker Compose continuam sendo a base: o Kubernetes executa as mesmas imagens que você aprende a construir com o Dockerfile.

### Quais erros de quem aprende Docker sozinho o curso evita?

Os erros mais comuns de quem aprende Docker sem um roteiro aparecem como aulas específicas na formação:

- **Perder os dados do banco** ao remover um container sem volume (módulo 5).
- **Containers que não se enxergam** por estarem em redes diferentes ou na rede padrão (módulo 6).
- **Imagens enormes** por copiar `node_modules` e arquivos desnecessários sem `.dockerignore` (módulo 7). As [boas práticas de build do Docker](https://docs.docker.com/build/building/best-practices/) tratam desse ponto.
- **API que sobe antes do banco** e falha na conexão, resolvido com healthcheck no Docker Compose (módulo 9).

## Conclusão

Ao terminar a Formação Docker, você sabe criar imagens com Dockerfile, rodar e gerenciar containers, guardar dados com volumes, conectar serviços com redes e subir um ambiente fullstack inteiro com um único `docker compose up`. É a base que acaba com o 'na minha máquina funciona' no seu time e nos seus projetos.

Se você quer aprender Docker do zero com projetos práticos, [conheça a Formação Docker](/formacao-docker). O valor atual e o conteúdo completo de cada módulo estão na página do curso. Para continuar estudando, veja também [outros posts sobre DevOps](/blog/categoria/devops).

## Saiba mais

As fontes abaixo são a documentação oficial das tecnologias citadas no post. Elas servem como referência durante e depois do curso.

- [Docker overview (Docker Docs)](https://docs.docker.com/get-started/docker-overview/)
- [Docker Compose (Docker Docs)](https://docs.docker.com/compose/)
- [Dockerfile reference (Docker Docs)](https://docs.docker.com/reference/dockerfile/)
- [Volumes (Docker Docs)](https://docs.docker.com/engine/storage/volumes/)
- [Networking overview (Docker Docs)](https://docs.docker.com/engine/network/)
- [Docker Desktop (Docker Docs)](https://docs.docker.com/desktop/)
- [Control startup order in Compose (Docker Docs)](https://docs.docker.com/compose/how-tos/startup-order/)
- [Building best practices (Docker Docs)](https://docs.docker.com/build/building/best-practices/)
- [Windows Subsystem for Linux (Microsoft Learn)](https://learn.microsoft.com/windows/wsl/)
