Docker no Windows: instalar e rodar o primeiro container
Para trabalhar com Docker no Windows você instala o Docker Desktop com o WSL como back-end, confirma com um docker run hello-world e já pode construir imagens suas com um Dockerfile. Abaixo está o caminho que eu fiz, incluindo o problema que apareceu comigo no meio da instalação.
Esta aula é de setembro de 2021. Os requisitos e os passos de instalação de hoje estão na documentação oficial do Docker Desktop para Windows.
O que você precisa antes
Eu uso Linux no dia a dia, mas muita gente que me acompanha usa Windows, então gravei no Windows. O processo é bem parecido, e o site do Docker traz um passo a passo. O que é o Docker, o Dockerfile e a estrutura de container eu expliquei em outro vídeo do meu canal, que vale ver antes ou depois deste.
O Docker Desktop pode trabalhar com o WSL ou com o back-end Hyper-V e containers Windows. Eu usei o padrão, o WSL, para rodar containers Linux. O WSL é a camada que o Windows oferece para rodar Linux dentro dele, e é ele que permite rodar Docker no Windows.
Não fiz a instalação antes de gravar: o que aconteceu comigo é o que pode acontecer com você.
1Instalar o Docker Desktop
Pesquise "Docker Windows" e abra a página de instalação do Docker Desktop. Ela lista os requisitos da máquina. Depois:
- Baixe o Docker Desktop para Windows.
- Execute o instalador como administrador.
- Deixe marcada a opção de instalar os componentes do WSL, e a do atalho na área de trabalho se quiser.
- Espere a extração dos pacotes. Ao terminar, ele pede para fechar e reiniciar o sistema.
2Se o WSL reclamar, atualize o Windows
Ao reiniciar, o Docker tentou usar o WSL e não funcionou: o WSL disse que o Windows precisava ser atualizado. O meu era um Windows 10 que tinha chegado ao fim da vida. Atualizei, reiniciei e o Docker subiu.
Se o Docker avisar que o WSL está com problema, o provável é que você precise atualizar o Windows também. O Docker mostra um link que leva ao WSL. Depois de atualizar, confira se o comando wsl funciona no terminal.
Não desista aqui: sem passar por essa dor você não tem os benefícios de trabalhar com Docker.
3Testar com hello-world
Abra o Prompt de Comando. Primeiro liste os containers:
docker ps
Ainda não há nenhum. Agora rode o clássico:
docker run hello-world
Se aparecer a mensagem "Hello from Docker!", a máquina está pronta. O que o comando fez: procurou a imagem hello-world na minha máquina, não achou, baixou do Docker Hub (o repositório oficial de imagens do Docker, com imagens públicas e privadas) e executou um container a partir dela. O docker images lista as imagens que você tem.

4Rodar um container Ubuntu e ver que ele não guarda estado
Instale o VS Code se ainda não tiver; eu usei o terminal dele daqui em diante. No Docker Hub, abra a página do Ubuntu e olhe as tags. Escolhi a 18.04, a mesma que uso no dia a dia. Rode um container interativo:
docker run -ti ubuntu:18.04
O -ti deixa você interagir com o container e ver a saída na tela. Como a imagem não existia localmente, ele baixou e extraiu. Você cai dentro do container: com ls vê os diretórios dele.
Entre em /usr, crie uma pasta e saia:
cd /usr
mkdir teste
exit
Rode o container de novo e entre em /usr: a pasta teste não existe mais. Ao sair, você encerrou o container, e tudo o que estava dentro dele se perdeu. Esse comportamento sem estado (stateless) é o motivo de o container servir tão bem para rodar aplicações web na nuvem: cada execução volta ao que a imagem define.
Sobre guardar arquivos fora do container, veja Volume no Docker: guardar logs e arquivos fora do container.
5Criar sua imagem com um Dockerfile
O Dockerfile é o arquivo que descreve uma imagem customizada. Numa pasta (a minha se chamava fontes), crie um arquivo chamado Dockerfile com este conteúdo:
FROM ubuntu:18.04
WORKDIR /usr
RUN mkdir teste
RUN apt-get update -y
RUN apt-get install nano -y
Em ordem: parte da imagem base Ubuntu 18.04, entra no diretório /usr, cria a pasta teste, atualiza os pacotes e instala o nano, um editor de texto de terminal que a imagem base não tinha.
Construa a imagem. O -t dá o nome (a tag) e o ponto diz que o Dockerfile está na pasta atual:
docker build -t teste-windows .
Quando terminar, confira com docker images: a teste-windows aparece na lista, ao lado da hello-world e da ubuntu.

6Provar que o container volta ao estado da imagem
Rode um container da sua imagem:
docker run -ti teste-windows
Ele já entra em /usr, porque o Dockerfile mandou entrar nesse diretório. O ls mostra a pasta teste e o nano abre, sem eu ter instalado nada à mão. Tudo isso vem da imagem.
Agora entre em teste, crie a teste2, saia e rode o container de novo:

A teste2 não existe. Ela não faz parte da imagem, e o container roda exatamente o estado em que a imagem foi congelada. Se o seu projeto web tem os fontes na imagem e algo é alterado dentro do container, você quer que, ao rodar de novo, ele volte ao estado original. É isso que acabou de acontecer.
Checklist
- Abra a documentação oficial do Docker Desktop para Windows e confira os requisitos da sua máquina.
- Instale o Docker Desktop executando o instalador como administrador e reinicie.
- Se o WSL reclamar, atualize o Windows e confira se o comando
wslfunciona. - Rode
docker psedocker run hello-worldpara confirmar que o Docker responde. - Rode
docker run -ti ubuntu:18.04, crie uma pasta, saia e veja que ela some ao rodar de novo. - Crie um Dockerfile, rode
docker build -t teste-windows .edocker images. - Rode
docker run -ti teste-windowse confirme a pastatestee onano.
Com o Docker rodando no Windows e a primeira imagem construída, você acompanha os outros conteúdos de Docker do canal.
O que os alunos dizem

“A Formação AWS me deu a prática, a segurança e a clareza que eu nunca encontrei em nenhum outro curso.”
Jhon Wilame, SRE / DevOps Engineer
Ver depoimento
“O melhor curso que eu fiz até hoje é o seu.”
Jorge Bastos, Desenvolvedor Java Sênior (AWS + IA)
Ver depoimento
“A prática e a clareza da metodologia me deram direção para entender a AWS de verdade e agir com segurança no dia a dia.”
Luiz Campedelli, Estagiário em Cloud
Ver depoimento
Formação AWS
Aprenda AWS e IA na prática, com projeto real e acompanhamento. Converse com o time sobre a Formação AWS.
Agende uma conversaPrefere assistir?
A aula completa (22 min) está no canal Domine AWS. O vídeo toca aqui mesmo.

