Installare Docker e Docker Compose su Ubuntu Server

Pubblicato il 02/05/2026 Linux

Perché Docker

Docker permette di isolare ogni servizio in un container leggero, con dipendenze versionate e ambiente riproducibile. Sostituisce installazioni "a tappeto" sul server con setup dichiarativi via docker-compose.yml.

Installazione del repo ufficiale

I pacchetti dei repository Ubuntu sono spesso vecchi. Aggiungiamo il repo ufficiale Docker:

sudo apt update
sudo apt install -y ca-certificates curl gnupg
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

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

Permessi per il tuo utente

Senza sudo ogni volta:

sudo usermod -aG docker $USER
newgrp docker

Attenzione: il gruppo docker equivale a root. Aggiungi solo utenti fidati.

Verifica

docker run --rm hello-world
docker compose version

Primo stack con Compose

Crea ~/stacks/nginx-demo/compose.yml:

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    restart: unless-stopped

Avvia:

cd ~/stacks/nginx-demo
mkdir html && echo "Hello from container" > html/index.html
docker compose up -d

Apri http://server:8080. Per fermare e rimuovere: docker compose down.

Backup dei volumi

I volumi nominati vivono in /var/lib/docker/volumes/. Per backupparli senza fermare il container:

docker run --rm \
  -v nome_volume:/data:ro \
  -v $(pwd):/backup \
  alpine tar czf /backup/volume.tar.gz -C /data .

Pulizia periodica

docker system df
docker system prune -a --volumes

Libera spazio rimuovendo immagini, container fermi e volumi orfani. Su un server di produzione fai prima un docker images per vedere cosa stai cancellando.