El kit del laboratorio, a descargar — https://github.com/hrhouma2/aiopsatlas-recherche-graphes-labo-fr — con
git clone https://github.com/hrhouma2/aiopsatlas-recherche-graphes-labo-fro con el botón verde Code → Download ZIP. Esta lección instala Docker (pasos 1 a 3), luego obtiene este kit (paso 4) y lanza su lista de verificación (paso 5).
Antes de hacer despegar un avión, el piloto no adivina: recorre una lista de verificación, punto por punto, y solo despega cuando todo está en verde. El laboratorio funciona igual. Docker es la pista (sin él, nada rueda), la memoria asignada es el combustible (Elasticsearch, Kibana y Neo4j son tres máquinas Java que reclaman cada una su parte), los puertos 9200, 5601, 7474 y 7687 son las frecuencias de radio que deben estar libres. El comando prerequis es tu lista de verificación: imprime una marca verde o una cruz roja por punto, y te dice exactamente qué corregir. Solo lanzas demarrer una vez que se muestra la última línea en verde.
El laboratorio son cinco contenedores descritos en un archivo docker-compose.yml y un script de acompañamiento en dos versiones: labo.sh (bash: Linux, macOS, WSL2, Git Bash) y labo.ps1 (PowerShell 5.1 o 7 en Windows). El script no hace nada mágico: encadena comandos docker compose y docker compose exec … curl dentro de los contenedores. Resultado: no instalas nada más que Docker en tu máquina, ni Java, ni Node, ni curl.
Lo que verifica prerequis, en orden: el comando docker existe; el daemon responde (docker info); docker compose v2 está presente; la memoria visible por Docker (docker info --format '{{.MemTotal}}') alcanza 4 GB (cruz por debajo, advertencia amarilla entre 4 y 6, verde a partir de 6); al menos 2 procesadores; los cuatro puertos están libres o ya en uso por el propio laboratorio.
| Sistema | Lo que instalas | Ajuste de memoria | Particularidad |
|---|---|---|---|
| Windows 10/11 | Docker Desktop, motor WSL 2 | archivo %UserProfile%\.wslconfig | Set-ExecutionPolicy si PowerShell rechaza el script |
| macOS | Docker Desktop (Intel o Apple Silicon) | Settings → Resources → Memory | nada más |
| Linux | Docker Engine + plugin docker-compose-plugin | la RAM de la máquina, directamente | grupo docker y vm.max_map_count obligatorios |
Windows: instalar Docker Desktop con WSL 2. Descarga Docker Desktop, deja marcada la opción «Use WSL 2 instead of Hyper-V», reinicia si se solicita, luego inicia Docker Desktop y espera a que el icono de la ballena esté estable (verde). En WSL 2, Docker no ve toda tu RAM: por defecto la mitad, y raramente más de 8 GB. Para garantizarle 6 GB, crea el archivo C:\Users\<tu>\.wslconfig (PowerShell):
notepad $env:UserProfile\.wslconfigPega estas tres líneas, guarda, luego reinicia la máquina virtual WSL:
[wsl2]
memory=6GB
processors=4wsl --shutdownVuelve a iniciar Docker Desktop. Lo que debes ver: docker info --format '{{.MemTotal}}' devuelve un número superior a 6 000 000 000. La buena noticia: la máquina WSL 2 de Docker Desktop ya fija vm.max_map_count en 262144, no tienes nada que hacer de ese lado (verificado: docker run --rm alpine sysctl vm.max_map_count → vm.max_map_count = 262144).
macOS: instalar Docker Desktop y subir la memoria. Instala el .dmg correspondiente a tu chip (Apple Silicon o Intel), inicia Docker Desktop, luego abre Settings → Resources → Advanced y mueve el control Memory a 6 GB mínimo (8 GB si planeas activar OpenSearch). Haz clic en «Apply & restart». Lo que debes ver: docker info --format '{{.MemTotal}}' refleja el nuevo ajuste.
Linux: Docker Engine, grupo docker y vm.max_map_count. Instala Docker Engine y el plugin Compose según la documentación de tu distribución (paquetes docker-ce, docker-ce-cli, containerd.io, docker-compose-plugin). Luego, para no escribir sudo en cada comando:
sudo usermod -aG docker $USER
newgrp docker # o cierra sesión y vuelve a entrar
docker run --rm hello-worldObligatorio en Linux: Elasticsearch y OpenSearch rechazan iniciar si el kernel limita el número de zonas de memoria virtual a 65 530 (el valor por defecto). Sube el límite de inmediato y hazlo permanente:
sudo sysctl -w vm.max_map_count=262144
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf
sysctl vm.max_map_countLo que debes ver: vm.max_map_count = 262144. Sin este ajuste, demarrer fallará con el mensaje descrito en la lección 04 (fallo n.º 3).
Obtener el kit del laboratorio. Dos opciones equivalentes. Con Git:
git clone https://github.com/hrhouma2/aiopsatlas-recherche-graphes-labo-fr
cd aiopsatlas-recherche-graphes-labo-frSin Git: en la página del repositorio, botón «Code» → «Download ZIP», descomprime, luego abre una terminal en la carpeta descomprimida. Lo que debes ver: docker-compose.yml, labo.sh, labo.ps1, README.md, y las carpetas elasticsearch/, neo4j/, outils/. Todos los comandos del curso se lanzan desde esta carpeta.
Lanzar la lista de verificación.
./labo.sh prerequis.\labo.ps1 prerequisSalida real en la máquina del curso (Windows 11, Docker Desktop, 20 procesadores, laboratorio ya iniciado):
== 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 demarrerLo que debes ver: en tu caso, antes del primer inicio, las últimas cuatro líneas dirán port 9200 : libre, etc. Una línea amarilla ! mémoire pour Docker : 5 Go — suffisant sans OpenSearch ; 6 Go conseillés pour le profil opensearch no es bloqueante. Una cruz roja ✘ sí lo es: el script termina con Corrigez les points marqués ✘ puis relancez y se niega a continuar.
Leer una cruz roja y corregirla. Cada ✘ contiene el remedio en la frase. Las tres más frecuentes:
| Línea mostrada | Qué haces |
|---|---|
✘ le démon Docker ne répond pas — lancez Docker Desktop et attendez l'icône verte | Docker Desktop no está iniciado, o todavía está iniciando. Espera, relanza. |
✘ mémoire pour Docker : 2 Go — il en faut au moins 4 (fichier %UserProfile%\.wslconfig : [wsl2] memory=6GB, puis wsl --shutdown) | Paso 1 (Windows) o 2 (macOS). |
✘ port 9200 déjà occupé par un autre programme — arrêtez-le ou changez le port dans docker-compose.yml | Un antiguo Elasticsearch instalado localmente, u otro proyecto Docker. Lección 04, fallo n.º 1. |
Lo que debes ver: tras corregir, relanza prerequis hasta obtener la línea verde final. Luego pasa a la lección 03.
PowerShell rechaza el script: .\labo.ps1 : Impossible de charger le fichier … car l'exécution de scripts est désactivée sur ce système. → La política de ejecución por defecto de Windows bloquea los scripts no firmados. Autorízalos solo para tu cuenta (no requiere elevación):
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedResponde O (sí) y relanza .\labo.ps1 prerequis.
docker : Le terme 'docker' n'est pas reconnu (o docker: command not found) → Docker no está instalado, o la terminal se abrió antes de la instalación y no recargó el PATH. Cierra y vuelve a abrir la terminal; en Linux, verifica la instalación con docker --version.
Linux: permission denied while trying to connect to the Docker daemon socket → Tu usuario no está en el grupo docker, o no volviste a iniciar sesión después de usermod. Repite el paso 3; id -nG debe listar docker.
prerequis muestra 3 GB de memoria cuando la máquina tiene 16 → En Windows, el .wslconfig no se aplica hasta que ejecutes wsl --shutdown y reinicies Docker Desktop. En macOS, el control Memory de Docker Desktop no se aplicó («Apply & restart»).
%UserProfile%\.wslconfig seguido de wsl --shutdown.vm.max_map_count=262144 en /etc/sysctl.conf es obligatorio para Elasticsearch y OpenSearch; Docker Desktop ya lo hace por ti en Windows y macOS../labo.sh prerequis o .\labo.ps1 prerequis es tu lista de verificación: no inicies hasta que la última línea esté en verde.Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.El kit ocupa alrededor de 6,3 GB de imágenes (Elasticsearch 2,56 GB, Kibana 2,76 GB, Neo4j 0,98 GB) y casi 12 GB con el perfil OpenSearch (2,83 + 2,62 GB). Si tu disco está ajustado, docker system df muestra lo que Docker consume y docker image prune libera las imágenes no usadas de otros proyectos.