Docker è un software open source per creare ed eseguire facilmente applicazioni in un ambiente isolato chiamato container da qualsiasi applicazione. Fornisce un modo efficiente per impacchettare le applicazioni con le relative librerie e altre dipendenze in un'unità standardizzata per lo sviluppo del software.
I container Docker sono molto più veloci ed efficienti di una macchina virtuale perché non devono eseguire un intero sistema operativo, solo l'eseguibile che serve l'applicazione.
Qui vedremo come installare Docker Comunity Edition (CE) su Debian 11.
Nota: Docker richiede una versione a 64 bit del sistema operativo Debian.
Installa Docker su Debian 11
Rimuovi le vecchie versioni
Innanzitutto, disinstalla le versioni precedenti dei pacchetti Docker chiamati docker o docker-engine, insieme alle dipendenze dal tuo sistema. Tuttavia, questa disinstallazione non rimuove i volumi Docker, le immagini e le reti esistenti che si trovano nella directory /var/lib/docker/.
sudo apt remove -y docker docker-engine docker.io containerd runc
Imposta il repository Docker
Installa i pacchetti seguenti per consentire a apt di avere il supporto del metodo HTTPS.
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
Aggiungi la chiave GPG di Docker al tuo sistema.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Aggiungi il repository Docker al sistema eseguendo il comando seguente.
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
Aggiorna l'indice del repository.
sudo apt update
Installa Docker Engine
Installa Docker Engine usando il comando apt.
sudo apt install -y docker-ce docker-ce-cli containerd.io
Controlla la versione Docker dopo l'installazione.
docker -v
Risultato:
Docker version 20.10.8, build 3967b7d
A questo punto, il servizio Docker dovrebbe essere attivo e funzionante.
sudo systemctl status docker
Risultato:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-08-21 12:31:37 CDT; 1min 39s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 18894 (dockerd) Tasks: 8 Memory: 31.3M CPU: 448ms CGroup: /system.slice/docker.service └─18894 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192715381-05:00" level=info msg="scheme \"unix\" not registered, fallback to default s> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192736530-05:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///r> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192749042-05:00" level=info msg="ClientConn switching balancer to \"pick_first\"" modu> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.429344966-05:00" level=info msg="Loading containers: start."
Verifica installazione Docker
Per testare l'installazione Docker, eseguiremo il contenitore hello-world.
sudo docker run hello-world
L'output seguente conferma che hai installato Docker Engine correttamente sul sistema operativo Debian.
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b8dfde127a29: Pull complete Digest: sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
Consenti agli utenti non root di eseguire i comandi Docker
Per impostazione predefinita, gli utenti normali non hanno i privilegi per eseguire i comandi Docker perché il demone Docker utilizza un socket Unix di proprietà dell'utente root.
docker run hello-world
Risultato:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
Per consentire agli utenti Linux regolari di eseguire i container Docker senza anteporre sudo, segui i passaggi seguenti.
Crea un gruppo chiamato Docker se non esiste.
sudo groupadd docker
Crea un utente se necessario. Sostituisci itzgeek con il tuo nome utente.
sudo useradd -m -s /bin/bash itzgeek
Aggiungi l'utente al gruppo Docker.
sudo usermod -aG docker itzgeek
Esci e accedi nuovamente, quindi esegui i comandi Docker senza anteporre sudo.
docker run hello-world
Argomenti interessati
Argomenti di base di Docker
1:Principali importanti comandi Docker – Utilizzo dei contenitori Docker
2:Utilizzo delle immagini Docker – Creazione di immagini Docker
3:come creare immagini Docker con DockerFile
Argomenti avanzati di Docker
1:come configurare il registro privato Docker su CentOS 7
2:come installare e configurare Docker Swarm su CentOS 7
Conclusione
È tutto. Spero che tu abbia imparato come installare Docker Engine su Debian 11.