Se você é novo em containers e Docker e trabalha principalmente no Windows, está prestes a se surpreender. Neste artigo, você aprenderá como configurar o Docker no Windows 10 usando o Docker Desktop for Windows ou simplesmente referido como Docker Desktop neste artigo.
O Docker Desktop é o Docker Engine e um cliente de gerenciamento empacotados juntos para facilitar o uso no Windows 10. Neste artigo, você instalará o Docker Desktop, implantará seu primeiro container e compartilhará dados entre seu host e seus containers.
Pré-requisitos para o Docker no Windows
Este é um artigo passo a passo demonstrando vários passos no Docker Desktop para Docker no Windows. Para seguir junto, certifique-se de ter alguns requisitos específicos em vigor primeiro.
- Uma conexão com a Internet para baixar mais de 800 MB de dados
- Windows 10 64 bits executando a edição Pro, Enterprise ou Education com a versão 1703 ou mais recente. Isso é necessário para executar o Hyper-V no Windows 10.
- A CPU with SLAT (nested paging) compatibility. All AMD/Intel processors since approximately 2008 are SLAT compatible
- Pelo menos 4GB de RAM
- A virtualização de hardware da BIOS às vezes rotulada como Tecnologia de Virtualização ou VTx. Isso deve estar habilitado e ser exibido como Habilitado na guia de desempenho do Gerenciador de Tarefas, conforme mostrado abaixo.

Baixando e Instalando o Docker Desktop
Em primeiro lugar, você precisa baixar e instalar o Docker Desktop para usar o Docker no Windows. O Docker Desktop está disponível em duas versões: uma versão estável e uma versão de teste.
A versão estável é lançada trimestralmente e garante um aplicativo totalmente testado. Neste artigo, você usará a versão estável.
Aviso: Ao instalar o Docker Desktop, ele solicitará a instalação do hipervisor Hyper-V, caso ainda não esteja instalado. Ao fazer isso, o hipervisor Hyper-V impede que qualquer hipervisor de modo de usuário, como o VirtualBox, VMWare, etc., execute máquinas virtuais de convidados. O suporte do Hyper-V para VirtualBox e VMWare é limitado, mas está em desenvolvimento.
Você também tem a opção de fazer o download diretamente do Docker Desktop no site Docker.com ou por meio do gerenciador de pacotes do Windows, Chocolatey. Vamos abordar brevemente cada método.
No site Docker.com
Para baixar o Docker Desktop diretamente do docker.com, você pode ir para a página do produto, registrar uma conta e baixá-lo de lá. Isso é preferível se você pretende usar o Docker em produção registrando uma conta.
No entanto, se você está apenas testando o Docker pela primeira vez, também pode baixá-lo diretamente, o que é muito mais fácil.
Depois que o EXE for baixado, execute o executável e siga as instruções aceitando todas as configurações padrão.
Ao ser perguntado se pretende Usar contêineres do Windows em vez de contêineres do Linux, como mostrado abaixo, não habilite a caixa de seleção. Você estará usando contêineres do Linux neste artigo.

Depois que a instalação estiver completa, reinicie o seu computador.
Selecionar a opção de usar contêineres do Windows ou contêineres do Linux indica ao Docker para anexar imagens a um kernel do Windows ou kernel do Linux. Você pode alterar essa configuração a qualquer momento após a instalação clicando com o botão direito no ícone do Docker na Bandeja do Sistema e selecionando Alterar para contêineres do Windows, conforme mostrado abaixo.

Usando o Chocolatey
A outra opção para baixar e instalar o Docker Desktop é através do Chocolatey. O Chocolatey automatiza muitas das tarefas de download/instalação para você. Para fazer isso, abra um console de linha de comando (seja cmd ou PowerShell) como administrador para baixar e instalar o programa de uma vez, executando o comando abaixo.
Depois de concluído, reinicie o Windows 10.
Se você deseja experimentar a versão de teste em algum momento, pode baixar e instalar executando
choco install docker-desktop --pre
.
Validando a Instalação do Docker Desktop
Depois de instalado, o Docker Desktop é executado automaticamente como um serviço fornecendo o Docker no Windows. Ele é mostrado na bandeja do sistema quando você faz login no Windows após reiniciar. Mas como você realmente sabe que está funcionando?
Para validar se o Docker Desktop está funcionando corretamente, abra um console de linha de comando e execute o comando docker
. Se a instalação foi bem-sucedida, você verá uma referência de comando Docker.
Por fim, faça o Docker baixar e executar uma imagem de contêiner de exemplo chamada hello-world executando o comando docker run hello-world
. Se tudo estiver correto, você verá uma saída como abaixo.

Executando Comandos em Contêineres Docker
O Docker Desktop está instalado e você verificou que tudo está bem? E agora? Para começar com o Docker no Windows, uma tarefa comum a ser realizada em um contêiner Docker é executar comandos. Através do comando docker run
, você pode enviar comandos através do host (seu PC com Windows 10) diretamente para um contêiner em execução.
Para executar comandos em um contêiner com docker run
, primeiro você especificará um nome de imagem seguido pelo comando. Para começar, diga ao Docker para executar o comando hostname
dentro de um contêiner chamado alpine como visto abaixo.
Já que você não possui a imagem Docker alpine em seu computador agora, o Docker no Windows irá baixar a pequena imagem do Docker Hub, iniciar um contêiner a partir dessa imagem e enviar o comando diretamente para o contêiner e desligá-lo tudo de uma vez.
Se você deseja manter o contêiner em execução, também pode usar o parâmetro -it
. Este parâmetro diz ao Docker para manter o contêiner no “modo interativo”, deixando-o em execução em primeiro plano após a execução do comando. Você verá que então estará apresentado com um prompt de terminal pronto para uso.
Quando terminar no terminal, digite exit
para retornar ao Windows 10.
Acessando Arquivos do Host Docker em Contêineres
Outra tarefa comum é acessar arquivos do host a partir de containers. Para acessar arquivos do host em containers, o Docker no Windows permite que você vincule um caminho de pasta do seu desktop para compartilhar essa pasta com o seu container. Esse processo é chamado de vínculo.
Para criar um vínculo, crie uma pasta em uma unidade local. Para este exemplo, vou usar E:\ e chamá-la de input. Em seguida, crie um novo documento de texto chamado file.txt na pasta. Sinta-se à vontade para usar o caminho e o arquivo que desejar.
Depois de ter a pasta que deseja compartilhar entre o host e o container, o Docker precisa montar a pasta usando o parâmetro --mount
. O parâmetro --mount
requer três argumentos: um tipo de montagem, um caminho de diretório de origem do host e um caminho de diretório de destino. O caminho de destino será um link simbólico dentro do container.
Abaixo você verá um exemplo de montagem de todo o E:\ dentro do host do Windows 10 para aparecer como o diretório /home/TEST dentro do container Linux.
Ao tentar montar uma pasta do host, o Docker Desktop solicitará sua permissão para compartilhar essa unidade com os containers do Docker, como visto abaixo.

Se você criou o arquivo file.txt na pasta do Windows 10 conforme descrito anteriormente, execute cat /home/TEST/input/file.txt
. Você verá que o conteúdo é exibido.
Agora, exclua a pasta input que você acabou de criar e execute novamente o comando cat ...
. Observe que o shell agora relata que o arquivo não existe mais.

Mapeamento de Portas de Rede
Outro conceito importante a saber é como o Docker no Windows lida com a rede. Para uma breve introdução, vejamos o que é necessário para acessar um serviço da web em execução em um contêiner a partir do host local.
Primeiro, inicie uma imagem de demonstração que executará uma página da web de exemplo. Faça o download e execute a imagem Docker chamada dockersamples/static-site. Você usará o docker container run
para fazer isso.
O comando a seguir realiza quatro ações de uma vez:
- Faz o download de uma imagem Docker do Docker Hub chamada static-site no “diretório” docker-samples
- Inicia uma instância de contêiner a partir da imagem static-site
- Desvincula imediatamente o contêiner do primeiro plano do terminal (
--detach
) - Torna as portas de rede do contêiner em execução acessíveis ao host do Windows 10 (
--publish-all
)
Após a execução, o Docker retornará o ID do contêiner que foi iniciado, conforme mostrado abaixo.

Publicação de Portas de Rede
Desde que você utilize o parâmetro --publish-all
, as portas do host local agora estão mapeadas para a pilha de rede do contêiner. Você pode usar o subcomando docker ps
para listar todos os contêineres em execução, incluindo as portas atribuídas a cada um deles. No exemplo abaixo, um contêiner está em execução, mapeando a porta do host 32777 para a porta 80 do contêiner e a porta do host 32776 para a porta 443 do contêiner.

O Docker no Windows atribui portas aleatórias aos contêineres ao usar o parâmetro --publish-all
, a menos que explicitamente definidas.
Agora, abra um navegador da web e acesse http://localhost:32777 ou a porta que o Docker atribuiu para mapear a porta 80, conforme mostrado por docker ps
. Se tudo correr bem, você deverá ver a página da web abaixo.

Alterando as Portas Publicadas
Agora você tem um contêiner Docker em execução no Docker no Windows fornecendo uma página da web simples. Parabéns! Mas agora você precisa especificar uma vinculação de porta específica sem depender da seleção aleatória de porta com --publish-all
. Sem problemas. Use o parâmetro -p
.
Primeiro, pare o contêiner em execução especificando uma cadeia única de seu ID de contêiner. Você pode encontrar este ID de contêiner executando docker ps
. Uma vez que você saiba o ID do contêiner, pare-o e inicie um novo, designando ao Docker a atribuição de uma porta específica para publicação.
A sintaxe para especificar uma porta é <porta externa>:<porta do contêiner>
. Para cada porta que você deseja publicar, use a opção --publish
ou -p
com os números da porta externa e do contêiner, conforme mostrado abaixo.
Ao especificar um ID de contêiner, você só precisa digitar o suficiente do ID para ser único. Se você estiver executando apenas um contêiner e o ID dele for
f766f4ac8d66bf7
, você pode identificar o contêiner usando qualquer número de caracteres, incluindo apenasf
. A exigência é que o que você digitar permita identificar unicamente um único contêiner.
Agora vá para o seu navegador da web e acesse localhost:1337
. Lembre-se, você não está alterando a imagem e ela sempre escuta na porta 80; você está alterando a regra de tradução de porta na configuração do Docker que permite conectar ao contêiner.

Parando todos os contêineres
Usando docker stop
, você pode parar um contêiner, mas como parar vários contêineres de uma vez? Uma maneira de fazer isso é fornecer vários IDs de contêiner separados por espaços. Abaixo, você pode ver um exemplo de como parar três contêineres com IDs fd50b0a446e7
, 36ee57c3b7da
e 7c45664906ff.
Se você está gerenciando contêineres Docker no PowerShell, também pode usar um atalho para parar todos os contêineres. Alimente uma lista de IDs de contêiner via
docker ps -q
para o parâmetro de parada através da expansão de comando do PowerShelldocker stop (docker ps -q)
.
Confirme que todos os contêineres estão parados ao ver que nenhum contêiner é listado quando você digita docker ps
.
Limpeza
Você baixou algumas imagens de contêiner e executou alguns contêineres que agora estão parados. Mesmo que estejam parados, o armazenamento alocado não desapareceu do disco do host local. Você deve excluir os contêineres para liberar esse espaço e evitar bagunçar sua área de trabalho.
Para excluir um único contêiner, use o parâmetro de remoção de contêiner rm
como abaixo.
Ou, para excluir todos os contêineres parados, use o parâmetro prune
como abaixo.