Docker ist eine Reihe offener Plattformen, die eine Virtualisierung auf Betriebssystemebene zum Entwickeln, Bereitstellen und Ausführen von Anwendungen bieten. In Docker werden Anwendungen als Pakete, standardisierte Einheiten, sogenannte Container, bereitgestellt. Jeder Container ist voneinander isoliert, einschließlich Bibliotheken und Konfigurationsdateien, aber jeder von ihnen kann über wohldefinierte Netzwerkkanäle kommunizieren.
Mittlerweile ist Docker zu einem Standard für Softwareentwicklung und DevOps geworden. Es wird von Millionen von Entwicklern verwendet, um jeden Tag bei der Arbeit Anwendungen zu erstellen, freizugeben und auszuführen. Es wird im Lebenszyklus der Anwendungsentwicklung verwendet, von der Entwicklung selbst über das Testen bis hin zur Produktion. Mit Docker wird die Anwendung flexibler und portabler. Anwendungen können auf einfache Weise überall in verschiedenen Betriebssystemen ausgeführt werden, aber die Anwendung selbst bleibt gleich, von Bibliotheken bis zu Konfigurationsdateien.
In diesem Tutorial erfahren Sie, wie Sie Docker auf Debian 11 Bullseye installieren. Außerdem lernen Sie die grundlegende Verwendung von Docker zum Ausführen von Containern und Verwalten von Images kennen.
Voraussetzungen
- Ein Debian 11-Server. Stellen Sie sicher, dass alle Pakete auf die neueste Version aktualisiert sind.
- Ein Root-Benutzer oder ein Benutzer mit Root-Rechten. Dieser Benutzer wird verwendet, um neue Pakete zu installieren und Systemkonfigurationen zu bearbeiten.
Installationsabhängigkeiten
Zuerst werden Sie einige grundlegende Paketabhängigkeiten auf Ihrem Debian-System installieren.
1. Führen Sie den folgenden apt-Befehl aus, um neue Paketabhängigkeiten zu installieren.
apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Geben Sie 'y ein ' und drücken Sie 'Enter ', um all diese Pakete zu installieren.
Docker-Repository hinzufügen
Für dieses Handbuch installieren Sie Docker aus dem offiziellen Docker-Repository. Sie fügen also Ihrem Debian-System ein neues Docker-Repository hinzu.
1. Führen Sie den folgenden Befehl aus, um den GPG-Schlüssel für Docker hinzuzufügen.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. Fügen Sie danach das Docker-Repository für das Debian 11-System mit dem folgenden Befehl hinzu.
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 > /dev/null
3. Führen Sie nun das 'apt update aus ' Befehl zum Aktualisieren/Aktualisieren aller verfügbaren Repositories.
apt update
Jetzt können Sie Docker auf Debian 11 Bullseye installieren.
Installieren von Docker unter Debian 11
1. Wenn auf Ihrem System zuvor Docker aus dem Debian-Repository installiert war, müssen Sie es mit dem folgenden Befehl entfernen.
sudo apt remove docker docker-engine docker.io containerd runc
2. Danach können Sie Docker mit dem folgenden apt-Befehl erneut installieren.
apt install docker-ce docker-ce-cli containerd.io
Geben Sie 'y ein ' und drücken Sie 'Enter ' um die Installation zu bestätigen.
3. Wenn die Installation abgeschlossen ist, führen Sie den folgenden Befehl aus, um die Installation zu überprüfen.
Überprüfen Sie, ob der Dienst aktiviert ist oder nicht.
systemctl is-enabled docker
systemctl is-enabled containerd
Überprüfen Sie den Dienststatus von Docker und Containerd.
systemctl status docker containerd
Unten sehen Sie eine ähnliche Ausgabe, die Sie erhalten werden.
Wie Sie sehen, sind die Docker- und Containerd-Dienste aktiv (laufend) , und beide Dienste sind aktiviert und wird automatisch beim Systemstart ausgeführt.
Docker für Nicht-Root-Benutzer zulassen
Standardmäßig lässt Docker nur den Benutzer „root“ zu ', um Container auszuführen. Und damit ein Nicht-Root-Benutzer Container ausführen kann, müssen Sie Ihren Nicht-Root-Benutzer zur Gruppe „docker hinzufügen ', die während der Docker-Installation automatisch erstellt wird.
1. In diesem Beispiel verwenden Sie den Benutzer „johndoe ', um einen Docker-Container auszuführen.
Erstellen Sie den neuen Benutzer „johndoe“ auf Ihrem Debian-System mit dem folgenden Befehl.
useradd -m -s /bin/bash johndoe
2. Führen Sie danach den folgenden Befehl aus, um den Benutzer „johndoe“ hinzuzufügen ' zur Gruppe 'docker '.
usermod -aG docker johndoe
3. Melden Sie sich jetzt als Benutzer „johndoe“ an ' mit dem folgenden Befehl und überprüfen Sie die Konfiguration.
su - johndoe
Führen Sie den folgenden Docker-Befehl aus, um Ihre Installation zu überprüfen.
docker run hello-world
Und Sie werden „Hallo Docker“ sehen ' Nachricht unten.
Unten finden Sie eine einfache Erklärung des Docker-Befehls, den Sie oben ausführen.
- Der Docker wird versuchen, einen Bildnamen „hello-world“ zu finden. Wenn das Image lokal verfügbar ist, führt der Docker den Container aus, wenn das Image nicht lokal verfügbar ist, findet Docker das Image „hello-world“ und lädt es auf dem Docker-Hub (Standard-Image-Repository für Docker) herunter.
- Wenn das Docker-Image heruntergeladen wird, führt Docker den Container aus. Und der Container führt Befehle aus und zeigt Ihnen die Nachricht „Hello Docker“.
4. Überprüfen Sie nun den Docker-Container mit dem Docker-Befehl unten.
Container mit Status „läuft“ wird geprüft '.
docker ps
Alle Container prüfen - zeigt Ihnen alle Container, derzeit laufende und gestoppte Container.
docker ps -a
Unten ist eine ähnliche Ausgabe wie unten.
Wie Sie sehen können, ist der neue Containername „bold_bartix ' wird mit dem Basisbild 'hello-world erstellt ', und der aktuelle Status des Containers ist 'Exited “ oder gestoppt. Der Containername „bold_bartix“ im Screenshot wird zufällig von Docker gewählt, aber Sie können den Namen Ihres Containers angeben.
Grundlegende Nutzung von Docker
In dieser Phase lernen Sie die grundlegende Verwendung von Docker zum Verwalten von Bildern und Containern kennen.
1. Laden Sie zunächst die Docker-Images mit dem folgenden Befehl auf Ihren lokalen Computer herunter.
docker pull nginx:alpine
Der Befehl lädt das Docker-Image mit dem Namen „nginx herunter ' und Tag 'alpin ' zu Ihrem System.
Der Begriff „Tags ' ist wie eine Version des Bildes selbst. Das 'nginx:alpine ' bedeutet die 'nginx ' Bild mit Tag 'alpin ', was bedeutet, dass es auf dem Betriebssystem Alpine Linux basiert. Überprüfen Sie immer alle verfügbaren Tags der Docker-Images im offiziellen Docker-Hub-Repository.
Nachfolgend finden Sie ein Beispiel aller verfügbaren Tags für das Docker-Image „nginx '.
Führen Sie den folgenden Docker-Befehl aus, um alle verfügbaren Docker-Images auf Ihrem lokalen System zu überprüfen.
docker images
Sie werden eine ähnliche Ausgabe wie unten sehen.
Wie Sie sehen, haben Sie zwei Docker-Images, das nginx:alpine und Hallo Welt .
2. Führen Sie als Nächstes den folgenden Befehl aus, um einen Container auszuführen.
docker run -it --rm -d -p 8080:80 --name web nginx:alpine
Jetzt erhalten Sie die zufällige Zeichenfolge und Nummer des neuen Containers.
Optionen, die Sie kennen müssen:
- -ich oder --interactive - hält den Container STDIN geöffnet, auch wenn er nicht angehängt ist.
- -t oder --tty - Weist ein Pseudo-Terminal zu, das Ihr Terminal mit STDIN und STDOUT des Containers verbindet.
- --rm - Container automatisch entfernen, wenn der Container beendet oder gestoppt wird.
- -d - Ausführen des Containers im Hintergrund, Trennen des Containers nach dem Ausführen.
- -p 8080:80 - Ordnen Sie den Port zwischen Container und Hostsystem zu. Der Port '80 ' auf dem Container wird dem Hostsystem zugeordnet port '8080 '.
- --name web - Geben Sie den neuen Containernamen als "web" an '.
- nginx:alpine - Das von uns verwendete Docker-Image ist 'nginx:alpine '.
Überprüfen Sie nun den laufenden Container mit dem folgenden Befehl.
docker ps
Sie werden ein ähnliches Ergebnis wie unten sehen.
Um Ihren Nginx-Container zu verifizieren, öffnen Sie Ihren Webbrowser und geben Sie Ihre Server-IP-Adresse mit dem Port „8080“ ein '.
http://192.168.1.10:8080/
Und Sie sehen die Nginx-Indexseite aus dem Container „web“. ' wie unten.
3. Als Nächstes können Sie das Protokoll des Containers überprüfen, indem Sie den folgenden Docker-Befehl ausführen.
docker logs web
Und Sie sehen alle Protokolle Ihres Containers von Anfang bis Ende.
Um die Protokollausgabe einzuschränken, können Sie das '--tail n verwenden ' Option wie unten.
docker logs --tail 10 web
Und Sie sehen die letzten 10 Zeilen der Containerprotokolle.
4. Um den Docker-Container jetzt zu stoppen, können Sie den Docker-Befehl unten verwenden.
docker stop web
Überprüfen Sie danach den laufenden Container mit dem folgenden Befehl.
docker ps
docker ps -a
Sie werden die folgende Ausgabe wie unten sehen.
Das 'Web ' Container wird angehalten und automatisch gelöscht. Das liegt daran, dass Sie die Option '--rm verwenden ' beim Ausführen des Containers.
5. Als Nächstes erfahren Sie, wie Sie den Container mit dem benutzerdefinierten Volume ausführen. Das Verzeichnis auf dem Hostcomputer wird als Volume für den Docker-Container verwendet.
Erstellen Sie die neuen 'Daten ' Verzeichnis und benutzerdefinierte 'index.html ' Datei mit dem folgenden Befehl.
mkdir -p ~/data/
nano ~/data/index.html
Kopieren Sie die benutzerdefinierte Datei „index.html und fügen Sie sie ein ' Skript wie unten.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to Docker Nginx</title>
</head>
<body>
<h2>Hello from Nginx container</h2>
</body>
</html>
Speichern Sie die Konfiguration durch Drücken von 'Strg+x ' Taste, geben Sie 'y ein ' und drücken Sie dann 'Enter '.
Erstellen Sie als Nächstes den neuen Container mit dem Docker-Befehl unten.
docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
Jetzt erhalten Sie die Zufallszahl und den String des Containers.
Die Option '-v ~/data:/usr/share/nginx/html ' wird die '~/data ' auf dem lokalen Rechner in den Container unter '/usr/share/nginx/html ' Verzeichnis.
Überprüfen Sie nun den Docker-Container mit dem folgenden Befehl.
docker ps
Und Sie werden eine ähnliche Ausgabe wie unten sehen.
Öffnen Sie als Nächstes erneut Ihren Webbrowser und geben Sie die Server-IP-Adresse gefolgt vom Port „8080“ ein ' wie unten.
http://192.168.1.10:8080/
Und Sie erhalten die benutzerdefinierte 'index.html', die Sie gerade erstellt haben, oben drauf, was '~/data bedeutet '-Verzeichnis wird in den Container '/usr/share/nginx/html gemountet ' Verzeichnis.
6. Darüber hinaus können Sie sich beim laufenden aktuell laufenden Container „web“ anmelden ' durch Ausführen des Docker-Befehls unten.
Prüfen Sie zunächst den Container „web“. ' läuft.
docker ps
Hängen Sie nun mit dem folgenden Befehl an den Container „web“ an.
docker exec -it web /bin/sh
Überprüfen Sie im Container den Hostnamen des Containers mit dem folgenden Befehl.
hostname
Überprüfen Sie die IP-Adresse des Containers mit dem 'ip ' Befehl unten.
ip a
Überprüfen Sie die Routing-Tabelle des Containers mit dem folgenden Befehl.
route -n
Unten sehen Sie eine ähnliche Ausgabe, die Sie erhalten werden.
Beenden Sie zum Bereinigen Ihrer aktuellen Umgebung die Datei „web ' Container mit dem folgenden Befehl.
docker stop web
Außerdem können Sie alle Container mit dem Status 'beendet entfernen ' mit dem folgenden Befehl.
docker rm $(docker ps --filter "status=exited" -q)
Schlussfolgerung
Glückwunsch! Sie haben Docker erfolgreich auf Debian 11 Bullseye installiert. Außerdem haben Sie die grundlegende Verwendung von Docker gelernt, um ein Image von Docker-Hub abzurufen, den Docker-Container auszuführen, den Status des Docker-Containers, Protokolle und die grundlegende Verwendung des Docker-Volumes zu überprüfen. Im nächsten Schritt können Sie versuchen, Ihr benutzerdefiniertes Docker-Image für Ihre Anwendung zu erstellen und es in das Docker-Hub-Repository zu verschieben.