Se você é novo em containers e Docker e trabalha principalmente no Windows, está prestes a ter uma experiência agradável. Neste artigo, você aprenderá como configurar o Docker no Windows 10 usando o Docker Desktop for Windows ou simplesmente chamado de 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 que demonstra vários passos no Docker Desktop para o Docker no Windows. Para acompanhar, certifique-se de ter alguns requisitos específicos em vigor primeiro.
- Uma conexão com a Internet para baixar mais de 800MB 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
- Virtualização de hardware na BIOS, às vezes rotulada como Tecnologia de Virtualização ou VTx. Isso deve estar habilitado e aparecer como Habilitado na guia de desempenho do Gerenciador de Tarefas, conforme mostrado abaixo.

Baixando e Instalando o Docker Desktop
Em primeiro lugar, é necessário baixar e instalar o Docker Desktop para começar a 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 uma aplicação totalmente testada. Neste artigo, será utilizada a versão estável.
Aviso: Após a instalação, o Docker Desktop solicitará a instalação do hipervisor Hyper-V, caso ainda não esteja instalado. Ao fazer isso, o hipervisor Hyper-V impede que hipervisores em modo de usuário, como o VirtualBox, VMWare, etc., executem máquinas virtuais de convidados. O suporte do Hyper-V para o VirtualBox e o VMWare é limitado, mas está em desenvolvimento.
Você também tem a opção de baixar o Docker Desktop diretamente do Docker.com ou através do gerenciador de pacotes do Windows, o Chocolatey. Vamos abordar brevemente cada método.
Do 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 é preferido 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.
Assim que o EXE for baixado, execute o executável e clique através dos prompts aceitando todos os padrões.
Ao ser perguntado se você planeja Usar containers do Windows em vez de containers do Linux, como mostrado abaixo, não habilite a caixa de seleção. Você estará usando containers do Linux neste artigo.

Assim que a instalação estiver completa, reinicie o seu computador.
Selecionar a opção de usar containers do Windows ou containers do Linux diz 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 Alternar para containers do Windows, conforme mostrado abaixo.

Usando o Chocolatey
A outra opção para baixar e instalar o Docker Desktop é usando o Chocolatey. O Chocolatey automatiza muitas das tarefas de download e instalação para você. Para fazer isso, abra um console de linha de comando (cmd ou PowerShell) como administrador para baixar e instalar o programa de uma vez, executando o comando abaixo.
Após a conclusão, reinicie o Windows 10.
Se você quiser experimentar a versão de teste em algum momento, pode baixar e instalar executando o comando
choco install docker-desktop --pre
.
Validando a instalação do Docker Desktop
Uma vez instalado, o Docker Desktop é executado automaticamente como um serviço que fornece o Docker no Windows. Ele é exibido na bandeja do sistema quando você faz login no Windows após reiniciar. Mas como você pode ter certeza de que ele 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 tiver ocorrido bem, você verá um resumo de comandos do Docker.
Por fim, faça o Docker baixar e executar uma imagem de container 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 Containers Docker
O Docker Desktop está instalado e você verificou se está tudo 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
, você primeiro 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 conforme 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 de uma só vez.
Se você quiser manter o contêiner em execução, também pode usar o parâmetro -it
. Esse parâmetro indica 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 estará então apresentado com um prompt de terminal pronto para uso.
Quando terminar no terminal, digite exit
para retornar ao Windows 10.
Acessando Arquivos do Host do 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 seu container. Esse processo é chamado de \textit{binding} (\textit{vinculação}).
Para criar uma vinculação, crie uma pasta em uma unidade local. Para este exemplo, vou usar E:\ e chamá-la de input. Isso criará 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 \texttt{–mount}. O parâmetro \texttt{–mount} requer três argumentos: um tipo de montagem, um caminho de diretório do host de origem 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 toda a unidade 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 esta unidade com os containers do Docker, conforme mostrado abaixo.

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

Mapeamento de Portas de Rede
Outro conceito importante de saber é como o Docker no Windows lida com a rede. Para uma breve introdução, vamos ver 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. Baixe e execute a imagem do Docker chamada dockersamples/static-site. Você usará docker container run
para fazer isso.
O comando a seguir realiza quatro ações de uma vez:
- Baixa uma imagem do Docker Hub chamada static-site no “diretório” docker-samples
- Inicia uma instância de contêiner a partir da imagem static-site
- Desconecta 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
)
Depois de executado, o Docker retornará o ID do contêiner que foi iniciado como mostrado abaixo.

Publicando Portas de Rede
Desde que você está utilizando 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 quais portas estão atribuídas a todos os contêineres em execução. No exemplo abaixo, um contêiner está em execução mapeando a porta do host 32777 para a porta do contêiner 80 e a porta do host 32776 para a porta do contêiner 443.

O Docker no Windows atribui portas aleatórias aos contêineres ao usar o parâmetro --publish-all
, a menos que sejam explicitamente definidas.
Agora, abra um navegador da web e acesse http://localhost:32777 ou a porta que o Docker atribuiu para mapear para 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 servindo 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 de porta aleatória com --publish-all
. Sem problemas. Use o parâmetro -p
.
Primeiro, pare o contêiner em execução especificando uma string única de seu ID de contêiner. Você pode encontrar este ID de contêiner executando docker ps
. Depois de saber o ID do contêiner, pare o contêiner e inicie um novo enquanto designa ao Docker para atribuir 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 de 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 seu ID for
f766f4ac8d66bf7
, você pode identificar o contêiner usando qualquer número de caracteres, incluindo apenasf
. O requisito é que tudo o que você digitar permita identificar de forma única 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 delimitados por espaço. Você pode ver abaixo um exemplo de como parar três contêineres com IDs de fd50b0a446e7
, 36ee57c3b7da
e 7c45664906ff.
Se estiver a gerir contentores Docker no PowerShell, também pode usar um atalho para parar todos os contentores. Alimente uma lista de IDs de contentores através do
docker ps -q
para o parâmetro de paragem através da expansão de comando do PowerShelldocker stop (docker ps -q)
.
Confirme que todos os contentores estão parados ao ver que não há contentores listados quando escreve docker ps
.
Limpeza
Você baixou algumas imagens de contentores e executou alguns contentores que agora estão parados. Mesmo que estejam parados, o espaço alocado não desapareceu do disco do host local. Você deve excluir os contentores para liberar esse espaço e evitar a desorganização no seu espaço de trabalho.
Para excluir um único contentor, utilize o parâmetro de remoção de contentor rm
como abaixo.
Ou, para excluir todos os contentores parados, utilize o parâmetro prune
como abaixo.