Conteúdo

Instalar Docker (Windows, macOS e Linux)

A instalação do Docker varia conforme o sistema operacional:

SistemaO que instalarDescrição
WindowsDocker DesktopExecuta em segundo plano um ambiente Linux pelo WSL 2 para rodar o Docker Engine
macOSDocker DesktopInclui uma máquina virtual Linux leve
LinuxDocker EngineInstala diretamente, sem precisar de máquina virtual; você também pode optar por instalar o Docker Desktop for Linux

O Docker Desktop é gratuito para uso pessoal, educação, projetos de código aberto não comerciais e pequenas empresas (menos de 250 funcionários e receita anual inferior a US$ 10 milhões); empresas maiores precisam de uma assinatura paga. O Docker Engine no Linux é um software de código aberto e não está sujeito a essa condição.

Windows

1. Confira os requisitos do sistema

  • Windows 10 22H2 (build 19045) ou Windows 11 23H2 (build 22631) ou superior, 64 bits
  • Pelo menos 8 GB de memória
  • CPU compatível com virtualização, ativada no BIOS / UEFI

Pressione Win + R e digite winver para consultar a versão e o número do build do Windows.

2. Confira se a virtualização está ativada

Abra “Gerenciador de Tarefas” → “Desempenho” → “CPU”. No canto inferior direito, Virtualization (Virtualização) deve aparecer como Enabled (Ativada):

Gerenciador de Tarefas mostrando que a virtualização está ativada
Gerenciador de Tarefas → Desempenho → CPU: Virtualization aparece como Enabled. Imagem: documentação oficial do Docker (Apache-2.0)

Se aparecer “Desativada”, reinicie o computador, entre na configuração do BIOS / UEFI e ative Intel VT-x ou AMD-V (SVM). (O nome da opção varia conforme o fabricante da placa-mãe.)

3. Instale ou atualize o WSL 2

Abra o PowerShell como administrador e execute:

wsl --install

Se você já instalou o WSL, atualize-o para a versão mais recente:

wsl --update
wsl --version

A versão do WSL exibida por wsl --version precisa ser 2.1.5 ou superior. Após a instalação, reinicie o computador quando solicitado.

Você também pode confirmar se estas duas opções estão marcadas em “Painel de Controle → Programas e Recursos → Ativar ou desativar recursos do Windows”:

Plataforma de Máquina Virtual e Subsistema do Windows para Linux marcados nos recursos do Windows
Marque “Virtual Machine Platform (Plataforma de Máquina Virtual)” e “Windows Subsystem for Linux (Subsistema do Windows para Linux)”. Imagem: documentação oficial do Docker (Apache-2.0)

4. Instale o Docker Desktop

  1. Baixe Docker Desktop for Windows no site oficial do Docker (em computadores comuns, escolha x86_64 / AMD64; em computadores ARM, como o Surface, escolha ARM64).
  2. Execute Docker Desktop Installer.exe.
  3. Na tela de configuração, mantenha marcada a opção Use WSL 2 instead of Hyper-V (recommended).
  4. Quando a instalação terminar, clique em Close e, se solicitado, saia da sessão ou reinicie o computador.

5. Inicie pela primeira vez

  1. Abra o Docker Desktop pelo menu Iniciar.
  2. Leia e aceite os termos de serviço.
  3. Você pode entrar na sua conta Docker ou ignorar esta etapa (Skip). Não é necessário entrar para seguir este tutorial.
  4. Quando o Engine aparecer como em execução (verde) no canto inferior esquerdo, a instalação estará concluída.

Enquanto o Docker Desktop estiver em execução, você poderá usar diretamente o comando docker no PowerShell, no Prompt de Comando e no terminal do WSL. Em seguida, pule para Confirme se a instalação foi bem-sucedida, mais abaixo.

macOS

1. Confira o tipo de chip

Clique no menu Apple, no canto superior esquerdo → “Sobre Este Mac”:

  • Se “Chip” mostrar Apple M series, baixe a versão Apple Silicon
  • Se “Processador” mostrar Intel, baixe a versão Intel chip

Requisitos do sistema: uma das três versões principais mais recentes do macOS e pelo menos 4 GB de memória.

2. Instale

  1. Baixe no site oficial do Docker o arquivo Docker.dmg correspondente.
  2. Abra Docker.dmg e arraste o ícone do Docker para a pasta “Aplicativos”.
  3. Abra o Docker em “Aplicativos”. Na primeira abertura, o sistema perguntará se você permite a execução; escolha “Abrir”.
  4. Aceite os termos de serviço e siga as instruções para digitar a senha do Mac e autorizar a instalação dos componentes necessários.
  5. Quando o ícone da baleia aparecer na barra de menus e o Docker Desktop mostrar que o Engine está em execução, a instalação estará concluída.

No Apple Silicon, recomendamos instalar também o Rosetta 2, necessário para algumas ferramentas disponíveis apenas na versão Intel:

softwareupdate --install-rosetta

Linux (Ubuntu)

No Linux, instale o Docker Engine diretamente. Os passos abaixo foram executados no Ubuntu 26.04 LTS e são exatamente os mesmos no Ubuntu 24.04 (o comando detecta automaticamente o codinome da versão do sistema).

1. Remova pacotes antigos ou conflitantes

Os repositórios incluídos no Ubuntu também oferecem pacotes como docker.io. Eles são mais antigos e entram em conflito com a versão oficial. Remova-os primeiro (se não estiverem instalados, não haverá problema):

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg; done

2. Adicione o repositório oficial do Docker

sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Depois de adicioná-lo, execute sudo apt-get update. A saída deve mostrar o repositório de pacotes download.docker.com (trecho; resolute é o codinome do Ubuntu 26.04; no 24.04, será exibido noble):

$ sudo apt-get update
Get:1 https://download.docker.com/linux/ubuntu resolute InRelease [32.5 kB]
Get:2 https://download.docker.com/linux/ubuntu resolute/stable amd64 Packages [33.2 kB]

3. Instale o Docker Engine

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
PacoteConteúdo
docker-ceDocker Engine (dockerd)
docker-ce-cliFerramenta de linha de comando docker
containerd.ioAmbiente de execução de contêineres de baixo nível
docker-buildx-pluginFerramenta de build do docker buildx/BuildKit
docker-compose-plugindocker compose

Abaixo estão a saída real da instalação (trecho) e as versões após a instalação:

$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Need to get 128 MB of archives.
After this operation, 511 MB of additional disk space will be used.
Setting up docker-buildx-plugin (0.38.0-1~ubuntu.26.04~resolute) ...
Setting up containerd.io (2.4.1-2~ubuntu.26.04~resolute) ...
Setting up docker-compose-plugin (5.6.0-1~ubuntu.26.04~resolute) ...
Setting up docker-ce-cli (5:29.9.0-1~ubuntu.26.04~resolute) ...
Setting up docker-ce (5:29.9.0-1~ubuntu.26.04~resolute) ...
Setting up docker-ce-rootless-extras (5:29.9.0-1~ubuntu.26.04~resolute) ...

$ docker --version
Docker version 29.9.0, build f415da8
$ docker compose version
Docker Compose version v5.6.0
$ docker buildx version
github.com/docker/buildx v0.38.0 0dbe87f36ed472fe36b6796c3f70b4210a731fc5
$ containerd --version
containerd containerd v2.4.1 f2551031d7276a770f65f98c9b52e57e7dad07e8

Após a instalação, o serviço do Docker será iniciado automaticamente e configurado para iniciar junto com o sistema. Você pode confirmar isso com systemctl:

sudo systemctl status docker

Se o status mostrar active (running), significa que o serviço está em execução.

4. Permita que usuários comuns também executem docker

Logo após a instalação, somente o root pode usar o Docker. Se um usuário comum executar o comando docker, ocorrerá um erro de permissão:

$ docker ps
permission denied while trying to connect to the docker API at unix:///var/run/docker.sock

Adicione sua conta ao grupo docker:

sudo usermod -aG docker $USER

A alteração entra em vigor depois que você sair da sessão e entrar novamente (ou executar newgrp docker).

Fazer parte do grupo docker equivale a ter privilégios de root (você pode criar contêineres que montam o sistema inteiro). Faça isso somente para contas confiáveis.

Confirme se a instalação foi bem-sucedida

Em qualquer sistema, abra o terminal (no Windows, use o PowerShell) e execute:

$ docker version
Client:
 Version:           29.9.0
 API version:       1.56
 Go version:        go1.26.9
 Git commit:        f415da8
 Built:             Thu Oct  8 20:36:58 2026
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          29.9.0
  API version:      1.56 (minimum version 1.40)
  Go version:       go1.26.9
  Git commit:       a5b58c9
  Built:            Thu Oct  8 20:39:33 2026
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v2.4.1
  GitCommit:
 runc:
  Version:          1.5.2
  GitCommit:        v1.5.2-0-g29dd3dc
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

O importante é ver as duas seções, Client e Server (no Windows e no macOS, o Client mostrará windows/amd64 ou darwin/arm64; o Server será sempre linux, porque o Docker Engine é executado no ambiente Linux do Docker Desktop):

  • Client: a ferramenta de linha de comando docker que você usa
  • Server: o Docker Engine em execução em segundo plano

Se a seção Server exibir uma mensagem de erro, o Engine não está em execução. Consulte os problemas comuns abaixo.

Em seguida, execute seu primeiro contêiner:

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
Digest: sha256:5e23090353324d887c48ad5e5c56d294eab81588df9605b07d1afe895f9cc8f8
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

A saída descreve as quatro etapas que acabaram de ocorrer: o CLI entrou em contato com o Engine → o Engine baixou a imagem hello-world do Docker Hub → criou um contêiner com ela e o executou → enviou a saída de volta ao seu terminal.

Por fim, confirme o Compose e o Buildx:

$ docker compose version
Docker Compose version v5.6.0

$ docker buildx version
github.com/docker/buildx v0.38.0 0dbe87f36ed472fe36b6796c3f70b4210a731fc5

Solução de problemas

failed to connect to the docker API

Em versões antigas do Docker, a mensagem era Cannot connect to the Docker daemon. No Docker 29, ela mudou para:

$ docker ps
failed to connect to the docker API at unix:///var/run/docker.sock; check if the path is correct and if the daemon is running: dial unix /var/run/docker.sock: connect: no such file or directory

Isso significa que o Docker Engine não está em execução.

  • Windows / macOS: abra o Docker Desktop e aguarde até que ele indique que o Engine está em execução.

  • Linux: inicie o serviço e configure-o para iniciar junto com o sistema:

    sudo systemctl start docker
    sudo systemctl enable docker

permission denied while trying to connect to the docker API

Problema de permissões no Linux (veja a mensagem de erro real na etapa 4 acima). Adicione sua conta ao grupo docker e saia da sessão e entre novamente. Executar apenas usermod sem entrar novamente não aplica a alteração do grupo.

Windows: WSL 2 installation is incomplete

O WSL não está instalado ou está desatualizado. Execute wsl --update como administrador, reinicie o computador e abra o Docker Desktop novamente.

Windows: suporte à virtualização não detectado

A virtualização não está ativada no BIOS / UEFI. Consulte a etapa 2 do Windows acima.

Resumo

  • Instale o Docker Desktop no Windows e no macOS; instale o Docker Engine em servidores Linux.
  • No Windows, é necessário ativar a virtualização da CPU e usar o WSL 2.1.5 ou superior.
  • docker version só indica que o Engine está em execução quando mostra Client e Server.
  • No Linux, usuários comuns precisam ser adicionados ao grupo docker, o que equivale a conceder permissões de root.

Exercícios

Exercício 1: execute docker version e encontre a versão do Docker Engine e o OS/Arch do Server.

Dica

Consulte Version e OS/Arch na seção Server: Docker Engine. No Windows e no macOS, o Server sempre é linux/amd64 ou linux/arm64, porque o Engine é executado na máquina virtual Linux do Docker Desktop.

Exercício 2: depois de executar docker run hello-world, execute docker ps -a. Por que você vê um contêiner que já foi encerrado?

Resposta

hello-world termina depois de imprimir uma mensagem. O contêiner para, mas não é removido. Se você executar com --rm, ele será removido automaticamente ao terminar. Consulte Ciclo de vida do contêiner.

Perguntas frequentes

É possível instalar o Docker Desktop na edição Home do Windows?

Sim. O Docker Desktop usa o WSL 2, compatível também com as edições Home do Windows 10 / 11, desde que a versão e o build atendam aos requisitos e a virtualização da CPU esteja ativada.

No Linux, devo instalar o Docker Desktop ou o Docker Engine?

Em servidores, instale sempre o Docker Engine. Em desktops Linux, ambos funcionam; os comandos deste tutorial servem para os dois ambientes.

Após a instalação, ao executar docker aparece permission denied. O que fazer?

No Linux, usuários comuns precisam ser adicionados ao grupo docker e fazer login novamente. Consulte neste capítulo a seção “Permitir que usuários comuns também executem o docker”.

Atualizado 14 de outubro de 2026