Vediamo come procedere all’installazione veloce di docker e docker compose su debian 13 Trixie ma funziona anche con Debian 12 e Debian 11.
Partiamo con docker:
apt-get update
apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Rimuoviamo eventuali pacchetti installati prima:
apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)
Installiamo la chiave GPG
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
Aggiungiamo il repository ad APT:
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Effettuiamo l’installazione vera e propria dell’ultima versione disponibile:
apt-get update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Nota: per installare una versione specifica, al posto dell’ultimo comando, facciamo:
apt list --all-versions docker-ce
VERSION_STRING=5:29.6.1-1~debian.12~bookworm
apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
Ora verifichiamo se tutto è andato a buon fine:
systemctl status docker
systemctl start docker
e proviamo ad avviare un’immagine di esempio
docker run hello-world
Nota: per disinstallare docker:
apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
e rimuoviamo anche il riferimento al repository ed alla firma:
rm /etc/apt/sources.list.d/docker.sources
rm /etc/apt/keyrings/docker.asc
Infine, se vi interessa un sistema visuale per la gestione delle istanze docker, posso consigliarvi portainer che potete recuperare da github. Per l’installazione di default:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Nota: se la macchina in questione è dietro un proxy, potreste ricevere il seguente errore:
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
Questo sicuramente è legato al fatto che docker non riesce ad utilizzare il proxy. Su Debian consiglio quanto segue:
mkdir /etc/systemd/system/docker.service.d
editare il file /etc/systemd/system/docker.service.d/http-proxy.conf ed inserire i parametri del proxy, es:
[Service]
Environment="HTTP_PROXY=http://proxyHost:proxyPort"
Environment="HTTPS_PROXY=http://proxyHost:proxyPort"
Environment="NO_PROXY=localhost,127.0.0.1"
Ricaricare l’unità di systemd:
systemctl daemon-reload
Verificare che le impostazioni siano state correttamente lette:
systemctl show --property Environment docker
riavviare il servizio docker, eseguire entrambe i comandi:
systemctl restart docker
service docker restart
E poi ripetere l’installazione di portainer, passando anche qui il proxy:
docker run -d -p 8000:8000 -p 9443:9443 -e "HTTPS_PROXY=http://proxyHost:proxyPort" --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Voglio ricordare che è possibile passare il proxy su docker in altri due modi:
Inserire nel file /etc/default/docker le informazioni del proxy, come segue:
export http_proxy='http://proxyHost:proxyPort'
export https_proxy='http://proxyHost:proxyPort'
export no_proxy=localhost,127.0.0.1
oppure creare il file ~/.docker/config.json ed inserire quanto segue:
{
"proxies": {
"defaults": {
"httpProxy":"http://proxyHost:proxyPort",
"httpsProxy":"http://proxyHost:proxyPort",
"noProxy":"localhost,127.0.0.1"
}
}
}
In ogni caso, ricordatevi di riavviare il servizio con:
service docker restart
Per verificare le impostazioni passate alle macchine guest, basterà eseguire questo comando:
docker container run --rm busybox env
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta