Debian: Installare docker e docker-compose

Oggi una serie di comandi per l’installazione veloce di docker e docker-compose su debian. La procedura è per Debian 11, ma più o meno dovrebbe funzionare anche per le altre versioni vicino a questa.

Partiamo con docker:

apt-get update
apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

Installiamo la chiave GPG

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 

Aggiungiamo il repository ad APT:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

Effettuiamo l’installazione vera e propria dell’ultima versione disponibile:

apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

Nota: per installare una versione specifica, al posto dell’ultimo comando, facciamo:

apt-get install docker-ce=<VERSIONE> docker-ce-cli=<VERSIONE> containerd.io

Ora passiamo a docker-compose. Scarichiamo manualmente l’ultima versione (es ora la 2.14.0rif)

curl -SL https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

Sistemiamo i permessi del file:

chmod +x /usr/local/bin/docker-compose

Se il file non dovesse essere in quell posizione, alcune verioni lo caricano in /usr/libexec/docker/cli-plugins/docker-compose e quindi facciamo:

ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose

Verifichiamo il funzionamento con:

docker-compose --version

Se non dovesse funzionare, possiamo fare un link simbolico in /usr/bin/

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Nota: per disinstallare docker:

apt-get purge docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

per disinstallare docker-compose:

rm /usr/local/bin/docker-compose
rm /usr/bin/docker-compose

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