Hoe Docker installeren op Debian 12, 11 of 10

Docker heeft snel aan populariteit gewonnen dankzij het vermogen om het implementatieproces te vereenvoudigen door applicaties in containers te plaatsen, waardoor consistentie in meerdere omgevingen wordt gegarandeerd. Het lichtgewicht karakter en het vermogen om efficiënt te schalen hebben het tot een favoriet gemaakt onder ontwikkelaars en IT-professionals.

  • Draagbaarheid: Docker-containers kunnen op elk systeem draaien dat Docker ondersteunt, zodat uw applicatie naadloos in verschillende omgevingen werkt.
  • Isolatie: Elke container opereert onafhankelijk, waardoor het risico op conflicten wordt verminderd en het gemakkelijker wordt om afhankelijkheden te beheren.
  • Efficiëntie: Containers delen de host-OS-kernel, waardoor ze efficiënter zijn dan traditionele virtuele machines.
  • Schaalbaarheid: Docker maakt het eenvoudig schalen van applicaties mogelijk, waarbij verschillende belastingen kunnen worden opgevangen door containers toe te voegen of te verwijderen.
  • Versiebeheer: Houd wijzigingen bij en ga moeiteloos terug naar eerdere versies, waardoor de ontwikkelings- en implementatieworkflow wordt verbeterd.

Debian heeft om verschillende redenen de voorkeur om te koppelen met Docker:

  • Stabiliteit: Debian staat bekend om zijn robuuste en betrouwbare karakter en zorgt voor een stabiele basis voor Docker-containers.
  • Beveiliging: Regelmatige updates en een sterke focus op beveiliging maken van Debian een veilige omgeving voor het inzetten van applicaties.
  • Maatschappelijke hulp: Een grote en actieve community biedt uitgebreide documentatie en ondersteuning, waardoor het oplossen van problemen eenvoudiger wordt.
  • Prestatie: Lichtgewicht en efficiënt, Debian zorgt ervoor dat Docker-containers soepel werken met minimale overhead.

Laten we, nu de introductie achter de rug is, eens kijken hoe u Docker op Debian kunt installeren, met behulp van terminalopdrachten en verschillende methoden om uw omgeving efficiënt aan de praat te krijgen.

Pre-installatiestappen voor Docker

Het instellen van Docker CE op uw Debian-systeem is eenvoudig maar nauwgezet. Voordat we ons verdiepen in het installatieproces, moeten we eerst de voorbereidingen treffen voor een foutloze uitvoering.

Stap 1: Verwijder eerdere Docker-instanties

Opmerking: Als u niet de standaardversie van Docker uit de repository van Debian hebt geïnstalleerd, sla dan de verwijderingsstap over.

Ten eerste moeten we alle bestaande Docker-installaties opschonen om een ​​conflictvrije omgeving te garanderen. Eerdere Docker-versies kunnen onze aanstaande installatie verstoren en tot onverwachte fouten leiden. Gebruik de volgende opdracht om oudere Docker-iteraties te verwijderen, als deze bestaan:

sudo apt remove docker docker-engine docker.io containerd runc

Als er geen oudere Docker-instanties zijn om te verwijderen, wordt de apt pakketbeheerder zal een bericht retourneren waarin wordt aangegeven dat er niets moet worden verwijderd.

Het is van cruciaal belang om te onthouden dat het verwijderen van Docker niet automatisch Docker-images, containers, volumes of netwerken verwijdert die gewoonlijk zijn opgeslagen in /var/lib/docker/. Als u van plan bent opnieuw te beginnen en alle Docker-gerelateerde gegevens te verwijderen, gebruikt u deze opdrachten:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Hiermee heeft u alle mogelijke Docker-residuen verwijderd die uw installatieproces zouden kunnen beïnvloeden.

Stap 2: Update de Debian-pakketten vóór de Docker-installatie

Nadat u oudere Docker-versies hebt verwijderd, moet u er als volgende stap voor zorgen dat uw Debian-systeem volledig is bijgewerkt. Updaten bevordert de systeemstabiliteit en zorgt ervoor dat uw systeempakketten de nieuwste versie hebben, waardoor potentiële conflicten en kwetsbaarheden worden geminimaliseerd.

Om de lijst met beschikbare pakketten bij te werken en de geïnstalleerde pakketten te upgraden, voert u de volgende opdracht uit:

sudo apt update && sudo apt upgrade

Met deze opdracht wordt eerst de lijst met beschikbare pakketten vernieuwd (apt update), gevolgd door de upgrade van eventuele verouderde pakketten (apt upgrade).

Docker CE APT-repository importeren

Om Docker CE succesvol te installeren, is het essentieel dat u uw Debian-systeem configureert om toegang te krijgen tot de Docker-repository. Dit omvat het integreren van de Docker-repository in uw systeem en het importeren van de bijbehorende GPG-sleutel. Deze stappen garanderen de authenticiteit van de gedownloade Docker-pakketten en beperken het risico van ongeautoriseerde wijzigingen.

Stap 1: Installeer de initiële pakketten voor Docker CE

In eerste instantie beschikt het systeem mogelijk niet over de benodigde pakketten voor dit proces. Laten we dat rechtzetten door ze te installeren. Voer de volgende opdracht uit om deze essentiële pakketten te installeren:

sudo apt install ca-certificates curl gnupg lsb-release dirmngr software-properties-common apt-transport-https

Hier maak je gebruik van de apt pakketbeheerder om een ​​verscheidenheid aan tools te installeren, zoals ca-certificates voor certificaatverificatie, curl om gegevens over te dragen, gnupg voor sleutelbeheer, en andere die nodig zijn voor dit proces.

Stap 2: Voeg Docker CE GPG-sleutel toe

Nadat we de vereiste pakketten hebben geïnstalleerd, gaan we de Docker GPG-sleutel importeren. Met deze sleutel kan uw systeem de integriteit verifiëren van pakketten die zijn gedownload uit de Docker-repository.

Gebruik de volgende opdrachten om de GPG-sleutel te downloaden en op te slaan:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

De curl command haalt de GPG-sleutel op uit de Docker-repository, die vervolgens wordt verwerkt door gpg --dearmor om het naar het binaire formaat te converteren apt vereist.

Stap 3: Voeg Docker CE APT Repository toe

Met de GPG-sleutel op zijn plaats, kunt u nu de Docker-repository importeren. Hier is de opdracht om dat te bereiken:

echo \
 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
 $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Deze complex ogende opdracht voegt de Docker-repository toe aan de bronlijst van uw systeem en koppelt deze aan de eerder gedownloade GPG-sleutel. Deze link verifieert de integriteit van de pakketten die zijn gedownload uit de Docker-repository, waardoor uw systeem veilig blijft.

Voltooi de Docker-installatie

In deze sectie worden de noodzakelijke stappen beschreven om Docker CE op uw Debian-systeem te installeren. U leert hoe u de repository-informatie van uw systeem kunt bijwerken, Docker kunt installeren en de installatie kunt verifiëren door een Docker-testimage uit te voeren. Bovendien bevat de sectie een cruciale beveiligingspraktijk om de veilige verwerking van Docker-containers en -images te garanderen.

Stap 1: Update de Debian APT-cache na het importeren van de Docker CE Repository

Voordat u de Docker-installatie start, is het een voordeel om ervoor te zorgen dat de repository-informatie van uw systeem up-to-date is, vooral met de onlangs toegevoegde Docker-repository. Om de repository-informatie bij te werken, voert u de volgende opdracht uit:

sudo apt update

Met deze opdracht worden de pakketlijsten van uw systeem vernieuwd, inclusief de details over de nieuwste versies van pakketten en hun afhankelijkheden.

Stap 2: Installeer Docker via APT Command

Nu de repository-informatie van het systeem is bijgewerkt, kunt u doorgaan met de Docker-installatie. Hier is de opdracht om Docker te installeren, samen met enkele extra plug-ins die uw Docker-ervaring verbeteren:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Met deze opdracht installeer je docker-ce (Docker Community-editie), docker-ce-cli (de Docker-opdrachtregelinterface), containerd.io (een industriestandaard runtime) en twee handige Docker-plug-ins voor het bouwen van images en het beheren van applicaties met meerdere containers.

Stap 3: Controleer de Docker CE-installatie op Debian

Nadat u de Docker-installatie hebt voltooid, controleert u voorzichtig of de installatie correct is door een Docker-testimage uit te voeren:

sudo docker run hello-world

Met dit commando wordt de hello-world image uit de Docker-repository, maakt een nieuwe container van deze image en voert de container uit. Wanneer het wordt uitgevoerd, wordt er een welkomstbericht afgedrukt, waarmee wordt bevestigd dat Docker naar verwachting functioneert.

Stap 4: Docker uitvoeren als niet-rootgebruiker

Om veiligheidsredenen configureert u Docker zo dat deze wordt uitgevoerd als een niet-rootgebruiker. Deze praktijk beschermt uw systeem tegen onbedoelde of kwaadwillige wijzigingen die schade kunnen veroorzaken. In een later deel zal dit aspect grondiger worden besproken.

Docker-probleemoplossingstip

Als u tijdens de interactie met Docker-containers en images problemen tegenkomt, kan het opnieuw opstarten van het systeem helpen deze op te lossen, met name problemen die verband houden met het genereren van paden. Gebruik de volgende opdracht om uw systeem opnieuw op te starten:

reboot

Docker beheren via Systemd

In dit segment wordt onderzocht hoe de Docker-service kan worden gemanipuleerd met systemd. Systemd is een fundamenteel onderdeel van veel Linux-distributies, waaronder Debian, en biedt functionaliteiten voor het beheren van systeemprocessen en -diensten. Omdat Docker een systemd-eenheid op uw Debian-systeem installeert, biedt dit een efficiënte manier om de Docker-service te beheren.

De Docker-service starten via systemd

Om Docker te kunnen gebruiken, moet de dienst actief draaien op uw Debian-systeem. Systemd faciliteert dit via de volgende opdracht:

systemctl start docker.service

Met deze opdracht start u de Docker-service en configureert u deze zodat deze automatisch wordt gestart bij het opstarten van het systeem, waardoor de beschikbaarheid ervan na elke opstart wordt gegarandeerd.

Stop Docker-service via systemd

In bepaalde omstandigheden wilt u mogelijk de Docker-service stoppen. Systemd biedt een eenvoudige opdracht om dit te bereiken:

systemctl stop docker.service

Deze opdracht stopt de Docker-service en voorkomt dat deze automatisch start bij de volgende systeemopstart.

Start Docker Service opnieuw via systemd

Mogelijk wilt u soms de Docker-service opnieuw starten, vooral bij het oplossen van Docker-gerelateerde problemen. Systemd biedt de functionaliteit om de Docker-service opnieuw te starten met deze opdracht:

systemctl restart docker.service

Met deze opdracht wordt de Docker-service gestopt en gestart, waarbij effectief de meest recente configuraties worden toegepast.

Controleer de Docker-servicestatus via systemd

Om de operationele status van de Docker-service te controleren, of deze nu actief, gestopt of inactief is, kunt u de volgende systemd-opdracht gebruiken:

systemctl status docker.service

Met de opdracht wordt de huidige status van de Docker-service opgehaald en weergegeven, waardoor inzicht wordt verkregen in de operationele toestand ervan.

Schakel Docker Service in op Debian System Boot via systemd

Als u wilt dat de Docker-service automatisch start bij het opstarten van het systeem, heeft het inschakelen ervan via systemd de voorkeur:

systemctl enable docker.service

Met deze opdracht worden de Docker-service-instellingen aangepast zodat deze automatisch starten bij elke systeemstart, waardoor continue beschikbaarheid van Docker-functionaliteiten wordt geboden.

Schakel de Docker-service uit bij het opstarten van het systeem via systemd

Als u besluit dat de Docker-service niet automatisch wordt gestart tijdens het opstarten van het systeem, kan systemd aan dit verzoek voldoen met de volgende opdracht:

systemctl disable docker.service

Deze opdracht wijzigt de instellingen van de Docker-service, waardoor wordt voorkomen dat deze automatisch wordt gestart bij het opstarten van het systeem.

Door gebruik te maken van systemd-opdrachten kunt u de Docker-service op uw Debian-systeem effectief beheren, waardoor u een hoge mate van controle krijgt over het operationele gedrag van Docker. In de volgende secties wordt dieper ingegaan op het gebruik en beheer van Docker-containers en -images.

Voorbeelden van hoe Docker te configureren

In dit gidsgedeelte gaan we dieper in op het instellen van Docker-configuraties. Dit omvat het beheren van Docker als een niet-rootgebruiker, wat de beveiliging verbetert, en het aanpassen van het standaard logboekstuurprogramma om beter aan uw behoeften te voldoen.

Stap 1: Voer Docker uit als niet-rootgebruiker

Hoewel u Docker als rootgebruiker kunt uitvoeren, wordt dit afgeraden vanwege potentiële veiligheidsrisico's en onbedoelde wijzigingen aan uw Debian-hostsysteem. Beheer in plaats daarvan Docker-bewerkingen onder een niet-rootgebruikersaccount om de beveiliging te verbeteren.

Om een ​​nieuwe gebruiker specifiek voor Docker-beheer aan te maken, voert u de volgende opdrachten uit:

sudo useradd -m dockeruser
sudo usermod -aG docker dockeruser

Met deze opdrachten wordt een nieuwe gebruiker gemaakt met de naam 'dockeruser' en wordt deze gebruiker aan de Docker-groep toegevoegd. Als u lid bent van de Docker-groep, krijgt een gebruiker de benodigde machtigingen om Docker-opdrachten uit te voeren.

Als u uw huidige gebruiker aan de Docker-groep wilt toewijzen, vervangt u 'dockeruser' door uw gebruikersnaam. Voor een gebruiker met de naam 'joshua' zou het commando bijvoorbeeld zijn:

sudo usermod -aG docker joshua

Nadat u deze wijzigingen heeft aangebracht, logt u uit en weer in om de wijzigingen toe te passen. Soms moet u het systeem mogelijk opnieuw opstarten om deze wijzigingen door te voeren.

Gebruik de volgende opdracht om te bevestigen dat de gebruiker toestemming heeft om Docker-opdrachten uit te voeren:

docker ps

De opdracht zou een lijst met actieve Docker-containers moeten weergeven, wat een succesvolle installatie aangeeft.

Stap 2: Wijzig het standaard Docker-logboekstuurprogramma

Docker registreert standaard gebeurtenissen in JSON-bestandsindeling. Niettemin kunt u dankzij de flexibiliteit van Docker het standaard logboekstuurprogramma in een ander formaat wijzigen of zelfs configureren om logboeken door te sturen naar een extern logboekbeheersysteem.

Om het standaard logboekstuurprogramma te wijzigen, moet u een nieuw bestand maken met de naam daemon.json in de /etc/docker/ map. Gebruik een teksteditor zoals nano en voer de volgende opdracht uit:

sudo nano /etc/docker/daemon.json

Wanneer het bestand geopend is, plakt u de volgende inhoud erin:

{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "tcp://logs.example.com:514",
    "syslog-facility": "daemon",
    "tag": "{{.Name}}"
  }
}

Docker gebruikt in deze configuratie het syslog-stuurprogramma en stuurt logboeken door naar een externe syslog-server. Vervang logs.example.com door het adres van uw syslog-server.

Zodra de configuratie aanwezig is, start u de Docker-daemon opnieuw op met behulp van de volgende opdracht om de nieuwe instellingen voor het logboekstuurprogramma toe te passen:

sudo systemctl restart docker.service

Houd er rekening mee dat eventuele wijzigingen in de daemon.json bestand vereisen dat de Docker-daemon opnieuw wordt opgestart voordat de wijzigingen worden toegepast.

Docker-opdrachtvoorbeelden

In dit segment verdiepen we ons in het gebruik van Docker-opdrachten die een cruciale rol spelen bij het effectief beheren van Docker-containers, images, netwerken en volumes. De docker command biedt een robuuste en veelzijdige toolset die is ontworpen om taken in uw Docker-omgeving te vereenvoudigen en te automatiseren.

Basisprincipes van Docker-opdrachten

Vertrouwd raken met de Docker-opdrachtregelinterface (CLI) is essentieel om Docker onder de knie te krijgen. Hieronder vindt u een aantal opdrachten die u vaak tegenkomt tijdens uw Docker-reis:

  • docker run: Start een nieuwe container vanuit een afbeelding.
  • docker ps: toont alle momenteel actieve containers.
  • docker images: Geeft een overzicht van alle lokaal beschikbare afbeeldingen.
  • docker build: Construeert een nieuwe afbeelding van een Dockerfile.
  • docker stop: stopt een momenteel actieve container.
  • docker rm: Elimineert een container.
  • docker rmi: verwijdert een afbeelding.
  • docker network: Beheert Docker-netwerken.
  • docker volume: Beheert Docker-volumes.

Elke opdracht heeft een unieke set opties waarmee u het gedrag ervan kunt aanpassen aan uw behoeften. Laten we elke opdracht en de bijbehorende opties verkennen.

De havenarbeider uitgevoerd Commando

De docker run opdracht maakt een nieuwe container van een opgegeven afbeelding. Om bijvoorbeeld een container te initiëren vanuit de Debian-image en daarin een interactieve shell te openen, gebruikt u het volgende commando:

docker run -it debian:latest /bin/bash

De havenarbeider ps Commando

De docker ps commando wordt ingezet om alle momenteel actieve containers in te schakelen. Het onthult waardevolle informatie over elke container, inclusief container-ID, bijbehorende afbeelding en actieve status. Om een ​​lijst met alle actieve containers te krijgen, typt u eenvoudigweg:

docker ps

De docker-afbeeldingen Commando

De docker images opdracht is belast met het weergeven van alle lokaal beschikbare Docker-images. Het retourneert informatie over elke afbeelding, inclusief de ID, de bijbehorende opslagplaats en de tag:

docker images

De havenarbeider gebouwd Commando

De docker build opdracht wordt gebruikt om een ​​nieuwe Docker-afbeelding te maken van een Dockerfile. Een Dockerfile is in wezen een script met instructies voor het construeren van een Docker-image. Als u bijvoorbeeld een nieuwe afbeelding met de naam 'myimage' wilt maken met behulp van het Docker-bestand in de huidige map, gebruikt u de volgende opdracht:

docker build -t myimage:latest .

De havenarbeider stopt Commando

De docker stop opdracht beëindigt op elegante wijze een actieve Docker-container. U kunt de gewenste container targeten met behulp van de ID ervan. Als u bijvoorbeeld een container met ID 'abcdefg' wilt stoppen, gebruikt u:

docker stop abcdefg

De havenarbeider rm Commando

Gebruik de docker rm opdracht om een ​​Docker-container te verwijderen. Zoals de stop geeft u de container-ID op van de container die u wilt verwijderen. Bijvoorbeeld:

docker rm abcdefg

De havenarbeider rmi Commando

Gebruik de docker rmi opdracht om Docker-images te verwijderen. Identificeer de afbeelding die u wilt verwijderen aan de hand van de ID. Bijvoorbeeld:

docker rmi 1234567

De docker-netwerk Commando

De docker network command is een veelzijdige tool voor het maken, weergeven en verwijderen van Docker-netwerken. Als u bijvoorbeeld een nieuw netwerk met de naam 'mijnnetwerk' wilt maken, gebruikt u:

docker network create mynetwork

De docker-volume Commando

eindelijk, de docker volume command biedt functionaliteiten voor het beheren van Docker-volumes. Als u bijvoorbeeld een nieuw volume met de naam 'mijnvolume' wilt maken, gebruikt u:

docker volume create myvolume

Navigeren door Docker Containerbeheer

Het effectief beheren van Docker-containers heeft een aanzienlijke invloed op de functionaliteit en levensduur van een Docker-omgeving. De docker-opdracht biedt een verscheidenheid aan cruciale subopdrachten voor het manipuleren van Docker-containers. Deze subopdrachten vergemakkelijken het maken, bedienen, wijzigen en verwijderen van containers. Of u nu een doorgewinterde ontwikkelaar bent of een beginner op het gebied van containerisatie, het begrijpen van deze opdrachten kan uw Docker-interactie aanzienlijk verbeteren.

Kernopdrachten voor Docker Container Management

Het bevel docker ps is een essentieel hulpmiddel in uw Docker-toolkit voor het opsommen van alle actieve containers. Door deze opdracht uit te voeren, kunt u alle actieve containers, de bijbehorende afbeelding, status en unieke container-ID zien.

docker ps

Om een ​​momenteel actieve Docker-container te beëindigen, gebruikt u de docker stop commando wordt ingezet. U voegt de unieke ID of naam toe van de container die u wilt stoppen.

docker stop abcdefg

De docker rm commando wordt gebruikt om een ​​Docker-container te verwijderen. Dit commando, zoals docker stop, accepteert de unieke ID of naam van de container als argument.

docker rm abcdefg

Het is van cruciaal belang om te weten dat het verwijderen van een container alle aangebrachte wijzigingen ongedaan maakt. U moet een nieuwe afbeelding maken van de gewijzigde container met behulp van de opdracht 'docker commit' om de wijzigingen te behouden.

Containerwijzigingen behouden met behulp van docker commit

Terwijl u met Docker-containers werkt, moet u mogelijk een container aanpassen en deze wijzigingen als een nieuwe afbeelding bewaren. Dit kan worden bereikt met behulp van de docker commit commando.

Start een nieuwe container met behulp van een basisimage en breng de nodige wijzigingen aan binnen deze container. Overweeg bijvoorbeeld om een ​​nieuwe container te starten vanuit de Debian-image en een shell in de container te openen:

docker run -it --name mycontainer debian:latest /bin/bash

In deze nieuwe container kun je diverse taken uitvoeren, zoals het aanpassen van configuratiebestanden of het installeren van nieuwe software. Nadat u de gewenste wijzigingen heeft aangebracht, gebruikt u de docker commit commando om een ​​nieuw beeld te produceren waarin deze wijzigingen zijn ingekapseld. Om een ​​nieuwe afbeelding met de naam 'myimage' te maken met de wijzigingen die zijn aangebracht in de 'mycontainer'-container, voert u de volgende opdracht uit:

docker commit mycontainer myimage:latest

U beschikt nu over een afbeelding met de naam 'myimage', waarin de wijzigingen zijn opgenomen die zijn aangebracht in de container 'mycontainer'. Gebruik deze nieuwe image om nieuwe containers te genereren en te gebruiken met bijgewerkte configuraties of software.

Houd er rekening mee dat het docker commit-commando alleen wijzigingen opslaat die zijn aangebracht in het bestandssysteem van de container, en geen wijzigingen in netwerken en opslag behoudt. Als het behouden van wijzigingen in netwerken en opslag noodzakelijk is, overweeg dan om andere Docker-opdrachten te gebruiken, zoals docker-netwerk en docker-volume.

Afsluiten

Tijdens onze discussie hebben we ons verdiept in het installeren en beheren van Docker Community Edition (CE) op een Debian Linux-distributie. Docker CE biedt alle voordelen van containerisatie, waardoor ontwikkelaars gedistribueerde applicaties in verschillende omgevingen kunnen bouwen, verzenden en uitvoeren. De hier besproken Docker-opdrachten en gebruiksscenario's bieden fundamentele kennis voor het beheren van Docker-containers. Terwijl het artikel fundamentele Docker-commando's besprak, zoals docker run, docker ps, docker rm, en anderen.

Houd er rekening mee dat het Docker-ecosysteem veel breder is, met talloze opdrachten en opties die u kunt verkennen om uw Docker-ervaring te verfijnen.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie