Instalar Docker e verificar os pré-requisitos

8 min
Público
iniciante, Windows, macOS ou Linux
Duração
20 a 30 min (mais o download do Docker)
Módulo
1/7
Competência visada
dispor de um Docker funcional com memória suficiente, obter o kit do laboratório e ler a saída de prerequis para corrigir o que falta antes de iniciar

O kit do laboratório, para baixarhttps://github.com/hrhouma2/aiopsatlas-recherche-graphes-labo-fr — por git clone https://github.com/hrhouma2/aiopsatlas-recherche-graphes-labo-fr ou pelo botão verde Code → Download ZIP. Esta lição instala o Docker (etapas 1 a 3), depois obtém esse kit (etapa 4) e executa sua lista de verificação (etapa 5).

Em uma imagem

Antes de fazer um avião decolar, o piloto não adivinha: ele percorre uma lista de verificação, ponto por ponto, e só decola quando tudo está verde. O laboratório faz o mesmo. O Docker é a pista (sem ele, nada anda), a memória alocada é o combustível (Elasticsearch, Kibana e Neo4j são três máquinas Java que reclamam cada uma sua parte), as portas 9200, 5601, 7474 e 7687 são as frequências de rádio que devem estar livres. O comando prerequis é a sua lista de verificação: ele imprime um visto verde ou uma cruz vermelha por ponto, e diz exatamente o que corrigir. Você só executa demarrer quando a última linha verde for exibida.

Como funciona

O laboratório são cinco contêineres descritos em um arquivo docker-compose.yml e um script de acompanhamento em dois sabores: labo.sh (bash: Linux, macOS, WSL2, Git Bash) e labo.ps1 (PowerShell 5.1 ou 7 no Windows). O script não faz nada de mágico: ele encadeia comandos docker compose e docker compose exec … curl dentro dos contêineres. Resultado: você não instala nada além do Docker na sua máquina, nem Java, nem Node, nem curl.

O que prerequis verifica, na ordem: o comando docker existe; o daemon responde (docker info); o docker compose v2 está presente; a memória visível pelo Docker (docker info --format '{{.MemTotal}}') atinge 4 GB (cruz abaixo disso, aviso amarelo entre 4 e 6, verde a partir de 6); pelo menos 2 processadores; as quatro portas estão livres ou já em uso pelo próprio laboratório.

SistemaO que você instalaAjuste de memóriaParticularidade
Windows 10/11Docker Desktop, motor WSL 2arquivo %UserProfile%\.wslconfigSet-ExecutionPolicy se o PowerShell recusar o script
macOSDocker Desktop (Intel ou Apple Silicon)Settings → Resources → Memorynada mais
LinuxDocker Engine + plugin docker-compose-plugina RAM da máquina, diretamentegrupo docker e vm.max_map_count obrigatórios

Passo a passo

  1. Windows: instalar o Docker Desktop com WSL 2. Baixe o Docker Desktop, deixe marcado "Use WSL 2 instead of Hyper-V", reinicie se solicitado, depois abra o Docker Desktop e aguarde até que o ícone da baleia fique estável (verde). No WSL 2, o Docker não vê toda a sua RAM: por padrão, metade, e raramente mais de 8 GB. Para garantir 6 GB a ele, crie o arquivo C:\Users\<você>\.wslconfig (PowerShell):

    powershell
    notepad $env:UserProfile\.wslconfig

    Cole estas três linhas, salve, depois reinicie a máquina virtual WSL:

    ini
    [wsl2]
    memory=6GB
    processors=4
    powershell
    wsl --shutdown

    Em seguida, reabra o Docker Desktop. O que é preciso ver: docker info --format '{{.MemTotal}}' retorna um número superior a 6 000 000 000. A boa notícia: a máquina WSL 2 do Docker Desktop já fixa vm.max_map_count em 262144, você não tem nada a fazer desse lado (verificado: docker run --rm alpine sysctl vm.max_map_countvm.max_map_count = 262144).

  2. macOS: instalar o Docker Desktop e aumentar a memória. Instale o .dmg correspondente ao seu chip (Apple Silicon ou Intel), abra o Docker Desktop, depois vá em Settings → Resources → Advanced e empurre o controle Memory para 6 GB no mínimo (8 GB se pretende ativar o OpenSearch). Clique em "Apply & restart". O que é preciso ver: docker info --format '{{.MemTotal}}' reflete o novo ajuste.

  3. Linux: Docker Engine, grupo docker e vm.max_map_count. Instale o Docker Engine e o plugin Compose conforme a documentação da sua distribuição (pacotes docker-ce, docker-ce-cli, containerd.io, docker-compose-plugin). Depois, para não digitar sudo a cada comando:

    bash
    sudo usermod -aG docker $USER
    newgrp docker        # ou déconnecte-toi puis reconnecte-toi
    docker run --rm hello-world

    Obrigatório no Linux: Elasticsearch e OpenSearch se recusam a iniciar se o kernel limitar o número de áreas de memória virtual a 65 530 (o valor padrão). Aumente o limite imediatamente e torne-o permanente:

    bash
    sudo sysctl -w vm.max_map_count=262144
    echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf
    sysctl vm.max_map_count

    O que é preciso ver: vm.max_map_count = 262144. Sem esse ajuste, demarrer falhará com a mensagem descrita na lição 04 (falha nº 3).

  4. Obter o kit do laboratório. Duas opções equivalentes. Com Git:

    bash
    git clone https://github.com/hrhouma2/aiopsatlas-recherche-graphes-labo-fr
    cd aiopsatlas-recherche-graphes-labo-fr

    Sem Git: na página do repositório, botão "Code" → "Download ZIP", descompacte, depois abra um terminal na pasta descompactada. O que é preciso ver: docker-compose.yml, labo.sh, labo.ps1, README.md, e as pastas elasticsearch/, neo4j/, outils/. Todos os comandos do curso são executados a partir dessa pasta.

  5. Executar a lista de verificação.

    bash
    ./labo.sh prerequis
    powershell
    .\labo.ps1 prerequis

    Saída real na máquina do curso (Windows 11, Docker Desktop, 20 processadores, laboratório já iniciado):

    text
    == Prérequis ==
      ✔ docker : Docker version 29.3.1, build c2be9cc
      ✔ le démon Docker répond
      ✔ docker compose : 5.1.1
      ✔ mémoire disponible pour Docker : 31 Go
      ✔ processeurs : 20
      ✔ port 9200 : utilisé par le labo lui-même
      ✔ port 5601 : utilisé par le labo lui-même
      ✔ port 7474 : utilisé par le labo lui-même
      ✔ port 7687 : utilisé par le labo lui-même
    
    Tout est prêt. Lancez : .\labo.ps1 demarrer

    O que é preciso ver: na sua máquina, antes da primeira inicialização, as quatro últimas linhas dirão port 9200 : libre (porta 9200: livre), etc. Uma linha amarela ! mémoire pour Docker : 5 Go — suffisant sans OpenSearch ; 6 Go conseillés pour le profil opensearch (memória para o Docker: 5 GB — suficiente sem OpenSearch; 6 GB recomendados para o perfil opensearch) não é bloqueante. Uma cruz vermelha é: o script termina com Corrigez les points marqués ✘ puis relancez (corrija os pontos marcados ✘ e reexecute) e se recusa a ir adiante.

  6. Ler uma cruz vermelha e corrigi-la. Cada contém o remédio na própria frase. As três mais frequentes:

    Linha exibidaO que você faz
    ✘ le démon Docker ne répond pas — lancez Docker Desktop et attendez l'icône verte (o daemon Docker não responde — abra o Docker Desktop e aguarde o ícone verde)O Docker Desktop não está aberto, ou ainda está iniciando. Aguarde, tente novamente.
    ✘ mémoire pour Docker : 2 Go — il en faut au moins 4 (fichier %UserProfile%\.wslconfig : [wsl2] memory=6GB, puis wsl --shutdown) (memória para o Docker: 2 GB — são necessários pelo menos 4)Etapa 1 (Windows) ou 2 (macOS).
    ✘ port 9200 déjà occupé par un autre programme — arrêtez-le ou changez le port dans docker-compose.yml (porta 9200 já ocupada por outro programa — pare-o ou mude a porta no docker-compose.yml)Um antigo Elasticsearch instalado localmente, ou outro projeto Docker. Lição 04, falha nº 1.

    O que é preciso ver: após a correção, reexecute prerequis até obter a linha verde final. Depois passe à lição 03.

Se travar

  • O PowerShell recusa o script: .\labo.ps1 : Impossible de charger le fichier … car l'exécution de scripts est désactivée sur ce système. (Não é possível carregar o arquivo … porque a execução de scripts está desabilitada neste sistema.) → A política de execução padrão do Windows bloqueia os scripts não assinados. Autorize-os somente para a sua conta (nenhuma elevação necessária):

    powershell
    Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

    Responda O (sim, em um Windows em francês; Y em um Windows em inglês) e reexecute .\labo.ps1 prerequis.

  • docker : Le terme 'docker' n'est pas reconnu (ou docker: command not found) → O Docker não está instalado, ou o terminal foi aberto antes da instalação e não recarregou o PATH. Feche e reabra o terminal; no Linux, verifique a instalação com docker --version.

  • Linux: permission denied while trying to connect to the Docker daemon socket → Seu usuário não está no grupo docker, ou você não se reconectou após o usermod. Refaça a etapa 3; id -nG deve listar docker.

  • prerequis exibe 3 GB de memória enquanto a máquina tem 16 → No Windows, o .wslconfig não é levado em conta enquanto você não executar wsl --shutdown e reabrir o Docker Desktop. No macOS, o controle Memory do Docker Desktop não foi aplicado ("Apply & restart").

Para lembrar

  • O laboratório exige uma única coisa na sua máquina: o Docker (Desktop ou Engine + plugin Compose). Todo o resto roda nos contêineres.
  • 4 GB de memória para o Docker no mínimo, 6 GB recomendados; no Windows, isso se ajusta em %UserProfile%\.wslconfig seguido de wsl --shutdown.
  • No Linux, vm.max_map_count=262144 em /etc/sysctl.conf é obrigatório para Elasticsearch e OpenSearch; o Docker Desktop já faz isso por você no Windows e no macOS.
  • ./labo.sh prerequis ou .\labo.ps1 prerequis é a sua lista de verificação: só inicie quando a última linha estiver verde.
  • Se o PowerShell recusar o script: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.

Para ir mais longe

O kit ocupa cerca de 6,3 GB de imagens (Elasticsearch 2,56 GB, Kibana 2,76 GB, Neo4j 0,98 GB) e perto de 12 GB com o perfil OpenSearch (2,83 + 2,62 GB). Se o seu disco estiver apertado, docker system df mostra o que o Docker consome e docker image prune libera as imagens não utilizadas de outros projetos.