Debian 13: Installare docker e docker compose

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