Docker ist eine Open-Source-Software zum einfachen Erstellen und Ausführen von Anwendungen in einer isolierten Umgebung namens Container von jeder Anwendung aus. Es bietet eine effiziente Möglichkeit, Anwendungen mit ihren Bibliotheken und anderen Abhängigkeiten in eine standardisierte Einheit für die Softwareentwicklung zu packen.
Docker-Container sind viel schneller und effizienter als eine virtuelle Maschine, da sie kein ganzes Betriebssystem ausführen müssen, sondern nur die ausführbare Datei, die der Anwendung dient.
Hier sehen wir, wie Docker Comunity Edition (CE) auf Debian 11 installiert wird.
Hinweis: Docker erfordert eine 64-Bit-Version von Debian OS.
Installieren Sie Docker unter Debian 11
Alte Versionen entfernen
Deinstallieren Sie zunächst die älteren Versionen von Docker-Paketen namens docker oder docker-engine zusammen mit Abhängigkeiten von Ihrem System. Diese Deinstallation würde jedoch keine vorhandenen Docker-Volumes, -Images und -Netzwerke entfernen, die sich im /var/lib/docker/-Verzeichnis befinden.
sudo apt remove -y docker docker-engine docker.io containerd runc
Docker-Repository einrichten
Installieren Sie die folgenden Pakete, damit apt die HTTPS-Methode unterstützt.
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
Fügen Sie den GPG-Schlüssel von Docker zu Ihrem System hinzu.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Fügen Sie das Docker-Repository zum System hinzu, indem Sie den folgenden Befehl ausführen.
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
Aktualisieren Sie den Repository-Index.
sudo apt update
Docker-Engine installieren
Installieren Sie Docker Engine mit dem apt-Befehl.
sudo apt install -y docker-ce docker-ce-cli containerd.io
Überprüfen Sie die Docker-Version nach der Installation.
docker -v
Ausgabe:
Docker version 20.10.8, build 3967b7d
Inzwischen sollte der Docker-Dienst betriebsbereit sein.
sudo systemctl status docker
Ausgabe:
● 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."
Docker-Installation überprüfen
Um die Docker-Installation zu testen, führen wir den hello-world-Container aus.
sudo docker run hello-world
Die folgende Ausgabe bestätigt, dass Sie Docker Engine korrekt auf Debian OS installiert haben.
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/
Nicht-Root-Benutzern erlauben, Docker-Befehle auszuführen
Standardmäßig haben normale Benutzer keine Berechtigungen zum Ausführen von Docker-Befehlen, da der Docker-Daemon einen Unix-Socket verwendet, der dem Benutzer root gehört.
docker run hello-world
Ausgabe:
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.
Führen Sie die folgenden Schritte aus, um normalen Linux-Benutzern zu ermöglichen, Docker-Container ohne das Präfix sudo auszuführen.
Erstellen Sie eine Gruppe namens Docker, falls sie nicht existiert.
sudo groupadd docker
Erstellen Sie bei Bedarf einen Benutzer. Ersetzen Sie itzgeek durch Ihren Benutzernamen.
sudo useradd -m -s /bin/bash itzgeek
Fügen Sie den Benutzer der Docker-Gruppe hinzu.
sudo usermod -aG docker itzgeek
Melden Sie sich ab und wieder an und führen Sie dann Docker-Befehle aus, ohne sudo voranzustellen.
docker run hello-world
Interessante Themen
Grundlegende Docker-Themen
1:Die wichtigsten Docker-Befehle – Arbeiten mit Docker-Containern
2:Arbeiten mit Docker-Images – Erstellen von Docker-Images
3:So erstellen Sie Docker-Images mit DockerFile
Erweiterte Docker-Themen
1:So richten Sie die private Docker-Registrierung unter CentOS 7 ein
2:So installieren und konfigurieren Sie Docker Swarm unter CentOS 7
Schlussfolgerung
Das ist alles. Ich hoffe, Sie haben gelernt, wie man Docker Engine unter Debian 11 installiert.