Come installare Docker su Ubuntu
In questa pagina
Docker esegue le applicazioni in container: ognuno include tutto ciò che gli serve, quindi funziona allo stesso modo sul tuo portatile e su un server. Siti web, database, bot e server di gioco si avviano con un solo comando o un solo file Compose.
Questa guida installa Docker Engine e Docker Compose su Ubuntu 24.04 o 22.04 dal repository ufficiale di Docker, poi tratta le impostazioni che contano su un server reale: permessi, log e firewall.
Prima di iniziare
- Un Ubuntu supportato: Docker supporta le versioni a 64 bit di Ubuntu 26.04, 24.04 e 22.04 LTS. Controlla la tua con
cat /etc/os-release. - Un server KVM, non un container: Docker ha bisogno di funzioni proprie del kernel. Funziona su qualsiasi VPS KVM, ma spesso non sui piani basati su container (OpenVZ o LXC).
- Root o un utente con sudo. I comandi seguenti usano
sudo; se hai effettuato l'accesso come root, puoi ometterlo.
Sui server evita il pacchetto docker.io del repository di Ubuntu e la versione Snap: il repository di Docker riceve prima le nuove versioni ed è quello usato dalla documentazione stessa di Docker.
Docker ha bisogno di una vera macchina virtuale: i piani VPS KVM di HytHost con Ubuntu e accesso root completo partono da €2.92/mese.
Vedi i piani VPSPasso 1: Rimuovi i pacchetti in conflitto
Se in passato hai installato Docker da un'altra fonte, rimuovi prima quei pacchetti. Su un server nuovo apt segnala semplicemente che non ce n'è nessuno installato:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Immagini e volumi in /var/lib/docker/ non vengono eliminati.
Passo 2: Aggiungi il repository di Docker
Questi comandi, presi dalla documentazione di Docker, aggiungono la chiave di firma di Docker e il suo repository apt per la tua versione di Ubuntu:
sudo apt update
sudo apt install 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
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Passo 3: Installa Docker e Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Così installi Docker Engine, lo strumento da riga di comando, il builder Buildx e il plugin Compose. Verifica che funzioni:
sudo docker run hello-world docker compose version
Il primo comando scarica una piccola immagine di prova e stampa un messaggio di benvenuto. Su Ubuntu Docker si avvia automaticamente all'avvio del sistema, quindi non c'è nulla da abilitare.
Compose è il comando docker compose, con lo spazio. Il vecchio docker-compose con il trattino è la prima versione, ormai dismessa; le guide che lo usano ancora funzionano anche con il nuovo comando.
Passo 4: Permessi e rotazione dei log
Usare docker senza sudo. Aggiungi il tuo utente al gruppo docker, poi esci e rientra:
sudo usermod -aG docker $USER
Tieni presente che Docker stesso avverte che questo gruppo concede privilegi di livello root: chiunque ne faccia parte può controllare l'intero server. Aggiungi solo utenti a cui daresti root.
Limita la dimensione dei log. Per impostazione predefinita i log dei container crescono senza limiti e possono riempire il disco. Crea /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Poi esegui sudo systemctl restart docker. Il limite vale per i container creati dopo la modifica, quindi ricrea quelli esistenti.
Un primo file Compose
Compose descrive i tuoi container in un unico file. Crea una cartella con un compose.yaml:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
Avvialo con docker compose up -d, controllalo con docker compose ps e leggi i log con docker compose logs. restart: unless-stopped riavvia il container dopo un crash o un riavvio. La porta è legata a 127.0.0.1 di proposito, come spiega la prossima sezione.
Docker e ufw: la trappola del firewall
Ci cascano quasi tutti. Quando pubblichi una porta, ad esempio -p 8080:80, Docker aggiunge le proprie regole firewall, che vengono applicate prima di quelle di ufw. La porta è aperta a internet anche se ufw dice che è chiusa.
- Lega le porte a localhost quando servono solo al server stesso, come un database o un'app dietro un reverse proxy:
127.0.0.1:8080:80. - Non pubblicare affatto le porte dei database; lascia che i container si raggiungano tramite una rete Docker.
- Per filtrare in base all'indirizzo di origine, aggiungi regole alla catena iptables
DOCKER-USER, che Docker controlla prima delle proprie.
Lo stesso vale per i server di gioco eseguiti in Docker; vedi come configurare un VPS per server di gioco.
Docker su un VPS HytHost
I piani VPS di HytHost girano su KVM, quindi ogni VPS ha il proprio kernel e Docker funziona senza restrizioni. Scegli Ubuntu 24.04 o 22.04 al momento dell'ordine, collegati via SSH e segui i passaggi qui sopra. Hai accesso root completo, storage SSD e protezione DDoS, e puoi passare a un piano più grande in seguito, man mano che i tuoi container crescono.
Domande frequenti
Docker supporta le versioni a 64 bit di Ubuntu 26.04, 24.04 e 22.04 LTS. Altri sistemi basati su Ubuntu, come Linux Mint, non sono supportati ufficialmente.
Non su un server di produzione. Docker dice che il suo script di comodo è pensato per ambienti di sviluppo e non è consigliato in produzione; inoltre può passare a una nuova versione major. Usa invece il metodo del repository.
docker-compose con il trattino è la vecchia versione, ormai dismessa. Oggi Compose è un plugin di Docker che si usa come docker compose e si installa con il pacchetto docker-compose-plugin.
Le porte pubblicate da Docker aggirano ufw. Lega la porta a 127.0.0.1 se deve restare locale, oppure filtrala nella catena DOCKER-USER.
Su un VPS KVM, sì. I piani VPS basati su container, come OpenVZ, spesso non possono eseguire Docker o richiedono impostazioni speciali da parte del provider.
Esegui i tuoi container su un VPS
I piani VPS KVM di HytHost eseguono Docker senza restrizioni, con accesso root completo e Ubuntu 24.04, da €2.92/mese.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursQuesta guida ti è stata utile?