Docker ist eine Containerisierungsplattform, mit der Sie Anwendungen schnell als tragbare, autarke Container erstellen, testen und bereitstellen können, die praktisch überall ausgeführt werden können.
Docker ist de facto Standard für Containertechnologie und ein unverzichtbares Tool für DevOps-Ingenieure und ihre kontinuierliche Integrations- und Bereitstellungspipeline.
In diesem Tutorial führen wir Sie durch die Installation von Docker auf einem Debian 9-Rechner und untersuchen die grundlegenden Docker-Konzepte und -Befehle.
Voraussetzungen #
Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind. Alle Befehle in diesem Tutorial sollten als Nicht-Root-Benutzer ausgeführt werden.
Installieren Sie Docker unter Debian #
Die folgenden Schritte beschreiben, wie Sie die neueste stabile Docker-Version aus den Docker-Repositories installieren.
-
Aktualisieren Sie die installierten Pakete auf die neueste Version:
sudo apt update
sudo apt upgrade
-
Installieren Sie die Abhängigkeiten, die zum Hinzufügen eines neuen Repositorys über HTTPS erforderlich sind:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
-
Importieren Sie den GPG-Schlüssel des Repositorys mit dem folgenden
curl
Befehl:curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Fügen Sie das Docker-APT-Repository zur Software-Repository-Liste Ihres Systems hinzu, indem Sie Folgendes eingeben:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$(lsb_release -cs)
gibt den Namen der Debian-Distribution zurück, in diesem Fallstretch
. -
Nachdem das Docker-Repository aktiviert ist, aktualisieren Sie die Datei
apt
Paketliste und installieren Sie die neueste Version von Docker CE (Community Edition) mit:sudo apt update
sudo apt install docker-ce
-
Sobald die Installation abgeschlossen ist, wird der Docker-Dienst automatisch gestartet. Sie können dies überprüfen, indem Sie Folgendes eingeben:
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 Fri 2018-07-27 17:02:07 UTC; 1min 14s ago Docs: https://docs.docker.com Main PID: 16929 (dockerd) CGroup: /system.slice/docker.service
-
Zum Zeitpunkt des Verfassens dieses Artikels ist die aktuelle Version von Docker, die für Debian 9 verfügbar ist,
18.06.0-ce
. Überprüfen Sie die Docker-Version mit:docker -v
Docker version 18.06.0-ce, build 0ffa825
Ausführen des Docker-Befehls ohne Sudo #
Standardmäßig kann nur ein Benutzer mit Administratorrechten Docker-Befehle ausführen.
Wenn Sie Docker-Befehle als Nicht-Root-Benutzer ausführen möchten, ohne sudo
voranzustellen Sie müssen Ihren Benutzer zur Docker-Gruppe hinzufügen, die während der Installation des Docker CE-Pakets erstellt wird. Geben Sie dazu Folgendes ein:
sudo usermod -aG docker $USER
$USER
ist eine Umgebungsvariable, die Ihren Benutzernamen enthält.
Melden Sie sich ab und wieder an, damit die Gruppenmitgliedschaft aktualisiert wird.
Um zu überprüfen, ob Sie Docker-Befehle ausführen können, ohne sudo
voranzustellen Führen Sie den folgenden Befehl aus, der ein Testbild herunterlädt, es in einem Container ausführt, eine „Hello from Docker“-Nachricht ausgibt und beendet:
docker container run hello-world
Die Ausgabe sollte wie folgt aussehen:
Docker-Befehlszeilenschnittstelle #
Nachdem wir Docker installiert haben, gehen wir die grundlegende Syntax der Docker-CLI durch:
docker [option] [subcommand] [arguments]
Um alle verfügbaren Befehle aufzulisten, führen Sie docker
aus ohne Parameter:
docker
Wenn Sie weitere Hilfe zu einem [subcommand]
benötigen , können Sie die --help
verwenden Schalter wie unten gezeigt:
docker [subcommand] --help
Docker-Images #
Ein Docker-Image besteht aus einer Reihe von Dateisystemschichten, die Anweisungen in der Docker-Datei des Images darstellen, die eine ausführbare Softwareanwendung bilden. Ein Image ist eine unveränderliche Binärdatei, die die Anwendung und alle anderen Abhängigkeiten wie Bibliotheken, Binärdateien und Anweisungen enthält, die zum Ausführen der Anwendung erforderlich sind.
Sie können sich ein Docker-Image als Snapshot eines Docker-Containers vorstellen.
Die meisten Docker-Images sind auf Docker Hub verfügbar.
Der Docker Hub ist ein Cloud-basierter Registrierungsdienst, der neben anderen Funktionen dazu dient, die Docker-Images entweder in einem öffentlichen oder privaten Repository zu halten.
Suche Docker-Image #
Um nach einem Image aus der Docker Hub-Registrierung zu suchen, verwenden Sie die search
Unterbefehl.
Um beispielsweise nach einem Debian-Image zu suchen, würden Sie Folgendes eingeben:
docker search debian
Die Ausgabe sollte so aussehen:
Wie Sie sehen können, druckt das Suchergebnis eine Tabelle mit fünf Spalten, NAME
, DESCRIPTION
, STARS
, OFFICIAL
und AUTOMATED
.
Das offizielle Image ist ein Image, das Docker gemeinsam mit Upstream-Partnern entwickelt.
Die meisten Docker-Images auf Docker Hub sind mit Versionsnummern gekennzeichnet. Wenn kein Tag angegeben ist, zieht Docker das neueste Image.
Docker-Image # herunterladen
Wenn wir den offiziellen Build des Debian-Images herunterladen möchten, können wir dies tun, indem wir den image pull
verwenden Unterbefehl:
docker image pull debian
Abhängig von Ihrer Internetgeschwindigkeit kann der Download einige Sekunden oder einige Minuten dauern.
Da wir kein Tag angegeben haben, zieht Docker das neueste Debian-Image, das 9.5 ist. Wenn Sie einige der früheren Debian-Versionen ziehen möchten, sagen wir Debian 8, dann müssen Sie docker image pull debian:8
verwenden
Sobald das Bild heruntergeladen ist, können wir die Bilder auflisten, indem wir Folgendes eingeben:
docker image ls
Die Ausgabe sieht in etwa so aus:
Docker-Image # entfernen
Wenn Sie aus irgendeinem Grund ein Bild löschen möchten, können Sie dies mit image rm [image_name]
tun Unterbefehl:
docker image rm debian
Docker-Container #
Eine Instanz eines Bildes wird Container genannt. Ein Container stellt eine Laufzeit für eine einzelne Anwendung, einen Prozess oder einen Dienst dar.
Es ist vielleicht nicht der geeignetste Vergleich, aber wenn Sie ein Programmierer sind, können Sie sich ein Docker-Image als Klasse und einen Docker-Container als Instanz einer Klasse vorstellen.
Mit dem docker container
können wir einen Container starten, stoppen, entfernen und verwalten Unterbefehl.
Starten Sie den Docker-Container #
Der folgende Befehl startet einen Docker-Container basierend auf dem Debian-Image. Wenn Sie das Bild nicht lokal haben, wird es zuerst heruntergeladen:
docker container run debian
Auf den ersten Blick mag es Ihnen scheinen, als wäre überhaupt nichts passiert. Nun, das stimmt nicht. Der Debian-Container stoppt sofort nach dem Hochfahren, da er keinen lang andauernden Prozess hat und wir keinen Befehl angegeben haben, also hat der Container hochgefahren, einen leeren Befehl ausgeführt und sich dann beendet.
Der Schalter -it
ermöglicht es uns, über die Befehlszeile mit dem Container zu interagieren. Um einen interaktiven Container zu starten, geben Sie Folgendes ein:
docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#
Wie Sie der obigen Ausgabe entnehmen können, ändert sich nach dem Start des Containers die Eingabeaufforderung, was bedeutet, dass Sie jetzt aus dem Container heraus arbeiten.
Docker-Container auflisten #
Um laufende Container aufzulisten, geben Sie Folgendes ein:
docker container ls
Wenn Sie keine laufenden Container haben, ist die Ausgabe leer.
Um alle Container anzuzeigen, übergeben Sie -a
Schalter:
docker container ls -a
Entfernen Sie Docker-Container #
Um einen oder mehrere Container zu löschen, kopieren Sie einfach die Container-ID (oder IDs) und fügen Sie sie nach dem container rm
ein Unterbefehl:
docker container rm c55680af670c