Docker is een populaire containerisatiesoftware. Containers zijn een standaard software-eenheid die code en al zijn afhankelijkheden verpakt zodat een toepassing snel en betrouwbaar kan worden uitgevoerd op verschillende besturingssystemen en computeromgevingen.
In technische termen is een container een draaiend proces dat geïsoleerd is van andere processen en toegang heeft tot computerbronnen. Laten we nu eens kijken naar het installeren van Docker in Debian 11 en het draaien van de eerste toepassing.
Er zijn twee manieren om te installeren: via de standaard Debian-repositories of via de officiële Docker-repository. De Debian-repositories bevatten niet de meest recente versie, dus laten we de installatie vanuit de officiële Docker-repository overwegen.
Voordat je de repository toevoegt, moet je de pakketlijst bijwerken door het commando uit te voeren:
$ sudo apt update
Installeer ook extra pakketten die nodig zijn om met externe repositories te werken. Voer het commando uit om deze pakketten te installeren:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Download vervolgens de PGP-sleutel uit het archief en voeg deze toe. Voer hiervoor het commando uit:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Om de repository toe te voegen moet je het commando uitvoeren:
$ echo "deb [arch=$(dpkg --print-architecture) 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 > /dev/null
Om het pakket te installeren, moet je eerst de pakketlijsten bijwerken, zodat een nieuw archief in het systeem verschijnt. Om dit te doen, voer je gewoon het commando uit:
$ sudo apt update
Tot slot kun je extra pakketten installeren. De installatie wordt uitgevoerd met het commando:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
Het woord ce
in de pakketnaam docker-ce
staat voor community
, wat betekent dat de gratis versie (aka community versie) geïnstalleerd zal worden. Nu weet je hoe je docker debian installeert.
Na de installatie wordt het standaard uitgeschakeld. Om het programma te starten moet je het commando uitvoeren:
$ sudo systemctl start docker
Om het te laten draaien met het besturingssysteem moet het worden toegevoegd aan de autoloader met het commando:
$ sudo systemctl enable docker
Standaard kan alleen de root-gebruiker de commando's in de terminal gebruiken en uitvoeren. Als je een commando van een normale gebruiker uitvoert, zal de terminal de volgende fout weergeven:
Toestemming geweigerd tijdens het proberen te verbinden met de Docker daemon socket op unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Om het commando uit te voeren als een normale gebruiker en zonder het sudo
commando te gebruiken, moet je de gebruiker toevoegen aan de docker
groep. De docker
groep wordt automatisch aangemaakt tijdens de installatie. Als hij echter om de een of andere reden niet automatisch wordt aangemaakt, moet hij handmatig worden aangemaakt door het volgende commando uit te voeren:
$ sudo groupadd docker
Voer vervolgens uit om de huidige gebruiker toe te voegen aan de docker groep:
$ sudo usermod -aG docker $USER
De $USER
variabele betekent dat de huidige gebruiker, namens wie de sessie wordt gestart, wordt toegevoegd aan de docker
groep. Deze variabele is aanwezig in alle moderne Linux distributies. Het is ook de moeite waard om op te merken dat de docker-groep rechten toekent die gelijkwaardig zijn aan die van de root-gebruiker.
Na het toevoegen van een gebruiker is het nodig om opnieuw in te loggen in het systeem en alleen dan kun je een Docker-commando
uitvoeren om te testen. Als voorbeeld werd het docker ps
commando uitgevoerd dat een lijst van draaiende containers weergeeft:
$ docker ps
Zoals je in de bovenstaande schermafbeelding kunt zien, werd het zonder fouten en namens een normale gebruiker uitgevoerd.
Om Docker volledig te testen, kun je ter verificatie een testimage downloaden van hello-world
. Om dit te doen, moet u uitvoeren:
$ docker run hello-world
De opdracht docker run
zal de software-afbeelding downloaden van de docker hub
online repository, het officiële opslagregister voor software-afbeeldingen van Docker dat standaard wordt gebruikt, en het automatisch uitvoeren. Het voorbeeld geeft de zin Hello from Docker!
wat betekent dat het image met succes is gedownload en uitgevoerd.