Instalando o Docker no Linux

Já enfrentou o clássico “mas funciona na minha máquina” ao tentar rodar um projeto em outro ambiente? Ou perdeu tempo configurando dependências complexas que conflitavam entre diferentes projetos? O Docker resolve esses problemas permitindo que você empacote suas aplicações com todas as suas bibliotecas e configurações em “containers” isolados e portáteis. Isso garante que elas rodem de forma consistente e previsível em qualquer lugar, desde o seu WSL até servidores de produção em nuvem.

Este guia prático mostrará como instalar e configurar o Docker nativamente em sua distribuição Linux rodando no WSL. Ao dominar o Docker no WSL, você terá um ambiente de desenvolvimento Linux poderoso e eficiente no Windows, simplificando a criação, o teste e a implantação de suas aplicações.

AvisoPré-requisitos

Antes de prosseguir com a instalação do Docker Engine, certifique-se de que:

  1. O WSL está instalado e funcionando corretamente
  2. Sua distribuição Linux está configurada para a versão 2 do WSL (verifique com wsl -l -v no PowerShell)

Se ainda não instalou o WSL, consulte nosso guia anterior: “Instalando o WSL no Windows”

Instalando o Docker Engine (Nativo) no WSL

Aviso

O exemplo a seguir utiliza o Ubuntu. Para outras distribuições, consulte a documentação oficial do Docker.

Passo 1: Preparando sua Distribuição

  1. Abra o terminal da sua distribuição Linux no WSL.

  2. Atualize os pacotes do sistema:

    sudo apt-get update
    sudo apt-get upgrade -y
  3. Instale os pacotes de pré-requisito necessários para adicionar repositórios HTTPS e gerenciar certificados:

    sudo apt-get install -y ca-certificates curl

Passo 3: Adicionar o Repositório Oficial do Docker

Conforme a documentação oficial do Docker:

  1. Crie o diretório para armazenar as chaves GPG do APT, se ele ainda não existir, e defina as permissões corretas:

    sudo install -m 0755 -d /etc/apt/keyrings
  2. Baixe a chave GPG oficial do Docker e salve-a no diretório de chaves:

    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  3. Garanta que a chave GPG seja legível por todos os usuários (mas não gravável):

    sudo chmod a+r /etc/apt/keyrings/docker.asc
  4. Configure o repositório estável do Docker. Este comando detecta a arquitetura do seu sistema e a versão do Ubuntu para adicionar o repositório correto:

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

Passo 4: Instalar o Docker Engine

  1. Atualize a lista de pacotes novamente para incluir os pacotes do repositório Docker recém-adicionado:

    sudo apt-get update
  2. Instale a versão mais recente do Docker Engine, CLI (Command Line Interface), Containerd (um runtime de container) e os plugins Docker Buildx e Docker Compose:

    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Passo 5: Configurações Pós-Instalação Essenciais

  1. Adicionar seu usuário ao grupo docker para executar comandos Docker sem sudo:

    sudo usermod -aG docker $USER
    Importante

    Após executar este comando, você precisará fechar e reabrir seu terminal WSL. Uma reinicialização completa do WSL (wsl --shutdown no PowerShell, seguido da reabertura do terminal WSL) também garante a aplicação.

  2. Iniciar o Serviço Docker:

    sudo service docker start
    Aviso

    Você precisará executar este comando toda vez que iniciar uma nova sessão WSL2, a menos que configure a inicialização automática abaixo.

  3. (Opcional) Configurar Inicialização Automática do Docker com Systemd:

    O systemd é um sistema de inicialização e gerenciador de serviços para Linux. Habilitá-lo no WSL2 (se ainda não estiver) permite que serviços como o Docker iniciem automaticamente com a sua distribuição.

    • Verificando se o systemd está ativo:

      ps -p 1 -o comm=

      Se o processo com PID 1 for systemd, ele está ativo.

    • Habilitando o systemd no WSL2 (se necessário):

      Se o systemd NÃO estiver ativo, você pode habilitá-lo editando (ou criando) o arquivo /etc/wsl.conf na sua distribuição Linux. Adicione o seguinte conteúdo:

      [boot]
      systemd=true

      Salve o arquivo. Em seguida, feche todas as instâncias da sua distribuição WSL2 e execute wsl --shutdown no PowerShell do Windows. Ao reiniciar sua distribuição WSL2, o systemd deverá estar ativo.

    • Habilitando e Iniciando o Docker com systemd:

      Com o systemd ativo, você pode habilitar o Docker para iniciar automaticamente:

      sudo systemctl enable docker.service
      sudo systemctl enable containerd.service # containerd também é importante

      Para iniciar os serviços imediatamente (ou se eles não iniciaram automaticamente após o enable):

      sudo systemctl start docker.service
      sudo systemctl start containerd.service

      Após habilitar e iniciar, o Docker deve iniciar automaticamente nas próximas vezes que você abrir sua distribuição WSL2.

Dicas

DicaVerificando a Instalação do Docker Engine
  1. Certifique-se de que o serviço Docker está rodando (sudo service docker status deve mostrar “active (running)”).

  2. Execute um container de teste:

    docker run hello-world

Se a instalação foi bem-sucedida, você verá uma mensagem de boas-vindas do container hello-world.

Conclusão

Parabéns! Você instalou e configurou o Docker Engine diretamente em sua distribuição Linux no WSL2. Esta abordagem oferece um ambiente Docker leve, performático e com controle total, ideal para desenvolvimento e para as atividades da nossa Oficina de Ciência de Dados.

Com esta configuração, você está pronto para construir, executar e gerenciar containers, simplificando o gerenciamento de dependências e a criação de ambientes de desenvolvimento reproduzíveis.

Recursos Adicionais