Setup dell'ambiente di laboratorio
Questa guida viene svolta insieme nel Modulo 1 ed è il riferimento per riallineare
qualunque postazione durante tutto il corso.
Requisiti hardware minimi
- CPU 4 core, 8 GB RAM (16 GB consigliati), 40 GB di disco liberi.
- Accesso a Internet (registry pubblici) e alla rete dell'Ente (registry/Git interni).
1. Installare Docker
Linux (consigliato per le postazioni di laboratorio)
# Debian/Ubuntu — repository ufficiale 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
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
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# usare docker senza sudo (richiede nuovo login)
sudo usermod -aG docker $USER
Windows / macOS
Installare Docker Desktop da https://www.docker.com/products/docker-desktop/
(su Windows richiede WSL2: wsl --install da PowerShell come amministratore, poi riavvio).
2. Verificare l'installazione
docker --version # Docker Engine 24+
docker compose version # Docker Compose v2 (plugin, senza trattino)
docker run --rm hello-world
Se hello-world stampa "Hello from Docker!", l'ambiente è pronto.
3. Strumenti di contorno
git --version # Git 2.30+
code --version # VS Code (consigliato) + estensione "Docker"
Editor consigliato: VS Code con le estensioni Docker e YAML.
4. Ambiente CI/CD (dal Modulo 8)
I laboratori CI/CD usano GitLab (i concetti si trasferiscono 1:1 a GitHub Actions
e Azure DevOps — la mappa delle equivalenze è nel Modulo 8).
Opzioni, in ordine di preferenza:
- GitLab dell'Ente (se disponibile): il trainer crea un gruppo
corso-dockercon un progetto per partecipante. - gitlab.com (piano free): ogni partecipante crea un account; 400 minuti/mese di runner condivisi bastano per il corso.
- GitLab locale via container (fallback aula chiusa): il trainer avvia
gitlab/gitlab-ce+ un runner sul server d'aula (istruzioni nel pacchetto del Modulo 8).
5. Registry (dal Modulo 7)
Nei laboratori si usa il Container Registry integrato in GitLab. In alternativa il
Modulo 7 mostra come avviare un registry locale (registry:2) per l'aula.
6. Proxy aziendale (se presente)
# /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.ente.it:8080"
Environment="HTTPS_PROXY=http://proxy.ente.it:8080"
Environment="NO_PROXY=localhost,127.0.0.1,registry.ente.it"
sudo systemctl daemon-reload && sudo systemctl restart docker
Problemi frequenti
| Sintomo | Causa | Rimedio |
|---|---|---|
permission denied ... docker.sock | utente non nel gruppo docker | sudo usermod -aG docker $USER + nuovo login |
Cannot connect to the Docker daemon | daemon fermo | sudo systemctl start docker (Linux) / avviare Docker Desktop |
Pull lentissimi o TLS timeout | proxy aziendale | configurare il proxy come sopra |
Porta già occupata (address already in use) | altro processo sulla porta | cambiare mappatura, es. -p 8081:80 |