Docker ist eine Open-Source-Containerisierungsplattform. Es ermöglicht Entwicklern, Anwendungen in Container zu packen – standardisierte ausführbare Komponenten, die den Quellcode der Anwendung mit den Bibliotheken des Betriebssystems (OS) und Abhängigkeiten kombinieren, die erforderlich sind, um diesen Code in jeder Umgebung auszuführen.
Docker ist eine Reihe von Platform-as-a-Service-Produkten, die eine Virtualisierung auf Betriebssystemebene verwenden, um Software in Paketen bereitzustellen, die als Container bezeichnet werden. Container sind voneinander isoliert und bündeln ihre eigene Software, Bibliotheken und Konfigurationsdateien; Sie können über klar definierte Kanäle miteinander kommunizieren.
Prüfen Sie auch diese Links:
- So installieren und verwenden Sie Docker in Ubuntu 20.04
- So installieren und konfigurieren Sie Docker in Centos 8
- So installieren und konfigurieren Sie Docker in Fedora 34/35
- Erste Schritte mit Docker Compose mit Beispielen
- Docker als Build-Agent – Führen Sie Jenkins-Builds auf Docker aus
Voraussetzungen
Um mitzumachen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein aktuelles Debian 11-System
- Internetzugang vom System aus
- Root-Zugriff oder Benutzer mit Sudo-Zugriff
- Kenntnisse des Linux-Terminals
Inhaltsverzeichnis
- Stellen Sie sicher, dass Ihre Systempakete auf dem neuesten Stand sind
- Deinstallieren Sie frühere Versionen, falls vorhanden
- Installieren Sie die Docker-Engine mithilfe des Repositorys
- Installieren Sie die Docker-Engine aus einem Paket
- Installieren Sie mit dem Convenience-Skript
- Installation überprüfen
- Ausführen des Docker-Befehls ohne Sudo
- Docker deinstallieren, wenn es länger benötigt wird
1. Stellen Sie sicher, dass Ihre Systempakete auf dem neuesten Stand sind
Bevor Sie fortfahren, lassen Sie uns sicherstellen, dass Ihre Pakete aktualisiert sind
sudo apt update
sudo apt upgrade -y
2. Deinstallieren Sie frühere Versionen, falls vorhanden
Pakete, die ältere Versionen von Docker bereitstellen, sind docker
, docker.io
, oder docker-engine
.
Lassen Sie uns diesen Befehl verwenden, um sicherzustellen, dass diese Pakete nicht in unserem System existieren:
sudo apt-get remove docker docker-engine docker.io containerd runc
Es ist in Ordnung, wenn apt-get meldet, dass keines dieser Pakete installiert ist.
Docker installieren
Sie können Docker Engine je nach Bedarf auf unterschiedliche Weise installieren:
- Sie können Docker-Repositories einrichten und Docker mit apt installieren
- Sie können die DEB-Pakete herunterladen und manuell installieren
- Sie können wählen, ob Sie automatisierte praktische Skripts verwenden möchten, um Docker zu installieren
3. Installieren Sie die Docker-Engine mithilfe des Repositorys
Auf einem neuen Host sind die Docker-Repositorys nicht vorhanden. Zum ersten Mal auf einem neuen Hostcomputer müssen Sie das Docker-Repository einrichten. Anschließend können Sie Docker aus dem Repository installieren und aktualisieren.
Lassen Sie uns die folgenden Pakete installieren, damit apt ein Repository über HTTPS verwenden kann:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Fügen Sie den offiziellen GPG-Schlüssel von Docker hinzu:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gp
Verwenden Sie den folgenden Befehl, um das stabile Repository einzurichten. Um die nachts hinzuzufügen oder testen Repository, fügen Sie das Wort nightly
hinzu oder test
(oder beides) nach dem Wort stable
in den Befehlen unten.
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
Docker-Engine installieren
Aktualisieren Sie den apt-Paketindex, da wir ein neues Repository hinzugefügt haben:
sudo apt-get update
Lassen Sie uns nun die neueste Version von Docker Engine und containerd usi installieren
sudo apt-get install docker-ce docker-ce-cli containerd.io
Optional:Installieren einer bestimmten Version
Wenn Sie Anforderungen haben, die eine bestimmte Version erfordern, können Sie dies tun. So installieren Sie eine bestimmte Version:
1. Listen Sie die Versionen auf, die in Ihrem Repo verfügbar sind:
$ sudo apt-cache madison docker-ce
docker-ce | 5:20.10.9~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.8~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.7~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.6~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
Jetzt können Sie mithilfe der Versionszeichenfolge aus der zweiten Spalte eine bestimmte Version installieren, zum Beispiel 5:20.10.7~3-0~debian-bullseye
.
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
Beispiel:
sudo apt-get install docker-ce=5:20.10.7~3-0 docker-ce-cli=5:20.10.7~3-0 containerd.io
Sobald die Installation abgeschlossen ist, startet der Docker-Daemon automatisch.
4. Docker-Engine aus einem Paket installieren
Wenn Sie das Repository von Docker nicht verwenden können, um Docker Engine zu installieren, können Sie die Datei .deb
herunterladen Datei für Ihre Version und installieren Sie sie manuell. Sie müssen jedes Mal eine neue Datei herunterladen, wenn Sie Docker aktualisieren möchten.
Gehen Sie zu https://download.docker.com/linux/debian/dists/, wählen Sie Ihre Debian-Version – (Bullseye) und navigieren Sie dann zu pool/stable/
, wählen Sie amd64
, armhf
, oder arm64
, und laden Sie die .deb-Datei für die Docker-Engine-Version herunter, die Sie installieren möchten.
Installieren Sie Docker Engine, indem Sie den Pfad unten in den Pfad ändern, in dem Sie das Docker-Paket heruntergeladen haben.
sudo dpkg -i /path/to/package.deb
Sobald die Installation abgeschlossen ist, startet der Docker-Daemon automatisch.
5. Installieren Sie mit dem Convenience-Skript
Docker stellt unter get.docker.com ein praktisches Skript bereit, mit dem Docker schnell und nicht interaktiv in Entwicklungsumgebungen installiert werden kann.
Dieses Beispiel lädt das Skript von get.docker.com herunter und führt es aus, um die neueste stabile Version von Docker unter Linux zu installieren:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
6. Installation überprüfen
Nach der Installation wird Docker als Daemon ausgeführt. Um zu überprüfen, ob Docker ausgeführt wird, verwenden wir den systemctl status docker
Befehl:
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-10-19 04:10:32 UTC; 4min 16s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 13456 (dockerd)
Tasks: 7
Memory: 39.0M
CPU: 265ms
CGroup: /system.slice/docker.service
└─13456 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789071579Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789278242Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container>
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789447226Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.059851510Z" level=info msg="Loading containers: start."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.267528805Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo>
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.337295417Z" level=info msg="Loading containers: done."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363462993Z" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363783617Z" level=info msg="Daemon has completed initialization"
Der Active: active (running)
zeigt an, dass Docker erfolgreich gestartet wurde.
Wir können eine hello-world
durchführen Bild, um zu testen, ob Docker wie erwartet funktioniert:
sudo docker run hello-world
Dieser Befehl lädt ein Testimage herunter und führt es in einem Container aus. Wenn der Container ausgeführt wird, gibt er eine Informationsnachricht aus und wird beendet.
Ich habe diese Ausgabe erhalten, die zeigt, dass es gut funktioniert:
$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
7. Ausführen des Docker-Befehls ohne Sudo
Standardmäßig kann der Docker-Befehl nur vom Root-Benutzer oder von einem Benutzer in der Docker-Gruppe ausgeführt werden, die während des Installationsprozesses von Docker automatisch erstellt wird. Wenn Sie versuchen, den Docker-Befehl auszuführen, ohne ihm das Präfix sudo voranzustellen oder ohne Mitglied der Docker-Gruppe zu sein, erhalten Sie eine Ausgabe wie diese:
$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Wenn Sie vermeiden möchten, jedes Mal sudo einzugeben, wenn Sie den Docker-Befehl ausführen, fügen Sie Ihren Benutzernamen zur Docker-Gruppe hinzu:
sudo usermod -aG docker ${USER}
Um die neue Gruppenmitgliedschaft zu übernehmen, melden Sie sich vom Server ab und wieder an oder geben Sie Folgendes ein:
sudo su - ${USER}
Sie werden aufgefordert, Ihr Benutzerkennwort einzugeben, um fortzufahren.
Bestätigen Sie, dass Ihr Benutzer jetzt zur Docker-Gruppe hinzugefügt wurde, indem Sie Folgendes eingeben:
id -nG
Ich sehe dies und bestätige, dass ich jetzt zur Docker-Gruppe gehöre
$ id -nG
admin docker
Jetzt kann ich Docker ohne sudo ausführen:
Lassen Sie uns testen, indem Sie image ausführen.
$ docker run --rm -it --name alpine --entrypoint /bin/sh alpine:3
Unable to find image 'alpine:3' locally
3: Pulling from library/alpine
a0d0a0d46f8b: Pull complete
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:3
/ #
Wir haben Docker erfolgreich in unserem System installiert!
8. Docker deinstallieren, wenn es länger benötigt wird
Um die Docker-Engine vollständig aus dem System zu löschen, müssen wir die Docker-Engine-, CLI- und Containerd-Pakete deinstallieren:
sudo apt-get purge docker-ce docker-ce-cli containerd.io -y
Images, Container, Volumes oder benutzerdefinierte Konfigurationsdateien auf Ihrem Host werden nicht automatisch entfernt. So löschen Sie alle Images, Container und Volumes:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Sie müssen alle bearbeiteten Konfigurationsdateien manuell löschen.
Schlussfolgerung
In dieser Anleitung ist es uns gelungen, Docker auf unserem Debian 11-System zu installieren.