Der heutige Teil der Docker-Reihe, die wir veröffentlichen, ist Docker-Teams gewidmet.
Die Docker-
Dokumentation enthält eine detaillierte Beschreibung einer Vielzahl von Befehlen, aber jemand, der gerade erst mit dieser Plattform arbeitet, kann sich darin verlieren. Hier sind also fast zwei Dutzend der wichtigsten Befehle für die Arbeit mit Docker. In Fortsetzung der etablierten Tradition werden wir Teams mit einer Streuung von Beeren vergleichen.
→
Teil 1: die Grundlagen→
Teil 2: Begriffe und Konzepte→
Teil 3: Dockerfile-Dateien→
Teil 4: Verkleinern von Bildern und Beschleunigen ihrer Montage→
Teil 5: Teams→
Teil 6: Arbeiten mit DatenRückblick
Wir möchten daran erinnern, dass Docker-Images basierend auf Dockerfile-Dateien erstellt werden, die alles beschreiben, was zum Erstellen von Images erforderlich ist. Vergessen wir außerdem nicht, dass der Container ein Docker-Image ist, das zum Leben erweckt wird. Um die Docker-Befehle effektiv nutzen zu können, müssen Sie zunächst herausfinden, womit Sie es zu tun haben - mit dem Bild oder mit dem Container. Wenn Sie an Bilder und Container denken, können Sie sehen, dass ein Docker-Bild entweder vorhanden sein kann oder nicht. Gleiches gilt für Docker-Container. Ein vorhandener Docker-Container kann sich außerdem entweder in einem Betriebszustand oder in einem inaktiven Zustand befinden.
Sobald Sie herausgefunden haben, mit was genau Sie arbeiten müssen, können Sie das richtige Team finden.
Docker-Befehlsübersicht
Hier sind einige Dinge, die Leute, die mit Docker arbeiten möchten, wissen sollten:
- Die Docker-Befehlszeilenschnittstellenbefehle, mit denen etwas gesteuert wird, beginnen mit dem
docker
Schlüsselwort, gefolgt von einem Leerzeichen. Dann wird angezeigt, wohin ein bestimmter Befehl geleitet wird, dann ein anderes Leerzeichen, und dann folgt der Befehl selbst. So wird beispielsweise ein solcher Befehl aufgebaut: docker container stop
. - Wenn der Befehl auf ein bestimmtes Bild oder einen bestimmten Container gerichtet ist, wird der Name oder die Kennung eines solchen Bildes oder Containers darin verwendet.
docker container run my_app
ist beispielsweise ein Befehl zum Erstellen und Ausführen eines Containers mit dem Namen
my_app
. In den folgenden Beispielen rufen wir
my_container
, images
my_image
, tags
my_tag
usw. auf.
Zuerst betrachten wir das Team selbst und dann die Flags, die damit verwendet werden können, falls solche Flags vorhanden sind. Wenn die Flagge zwei Striche vor sich hat, ist dies ihre volle Form. Eine Flagge mit einem Strich ist eine abgekürzte Version einer bestimmten Flagge. Sie verhalten sich genauso. Beispielsweise ist
-p
eine abgekürzte Form des
--port
.
Der Zweck dieses Artikels ist es, Ihnen einen Überblick über die Docker-Befehle zu geben. Wenn Sie eine allgemeine Vorstellung davon haben und die dank dieser Befehle verfügbaren Plattformfunktionen kennen, können Sie bei Bedarf detaillierte Informationen zu ihnen finden. Die betreffenden Teams werden unter Betriebssystemen der Linux-Familie mit der Docker-Engine Version 18.09.1 und der API-Version 1.39 getestet.
Ein Hinweis zu Befehlen, die von Docker CLI 1.13 unterstützt werden
Die Docker-Befehlszeilenschnittstelle der Version 1.13 bietet aktualisierte, logisch gruppierte Befehle. Gleichzeitig arbeiten alte Teams immer noch, aber es ist einfacher, neue zu verwenden, insbesondere für Anfänger. Beispielsweise wurde in Version 1.12 ein Befehl des Formular-
docker create
, und in Version 1.13 wurde der Befehl
docker container create
verfügbar. Informationen zum Matching alter und neuer Teams finden Sie
hier .
Zuerst sehen wir uns die Befehle zum Verwalten von Containern an, dann diskutieren wir die Bildverwaltung.
Containerverwaltungsbefehle
Das allgemeine Befehlsschema zum Verwalten von Containern lautet wie folgt:
docker container my_command
Hier sind die Befehle, die ersetzt werden können, wenn wir
my_command
verwendet
my_command
:
create
- Erstellt einen Container aus einem Bild.start
- Startet einen vorhandenen Container.run
- Erstellen Sie einen Container und starten Sie ihn.ls
- Liste der laufenden Container.inspect
- Detaillierte Informationen zum Container anzeigen.logs
- Protokollausgabe.stop
- Stoppen Sie den laufenden Container, indem Sie das SIGTERM
Signal an den SIGTERM
und nach einiger Zeit an SIGKILL
senden.kill
- Stoppen Sie den laufenden Container und senden Sie das SIGKILL
Signal an den SIGKILL
.rm
- löscht einen gestoppten Container.
Bildverwaltungsbefehle
Für die Bildverwaltung werden Befehle verwendet, die folgendermaßen aussehen:
docker image my_command
Hier sind einige der Teams in dieser Gruppe:
build
- baue das Image.push
- Sende das Image an die Remote-Registrierung.ls
- Liste der Bilder.history
- Zeigt Informationen zu Bildebenen an.inspect
- Zeigt detaillierte Informationen zum Bild an, einschließlich Informationen zu den Ebenen.rm
- lösche das Bild.
Verschiedene Teams
docker version
- docker version
für den Docker-Client und -Server an.docker login
- Docker-Registrierungseintrag.docker system prune
- Löschen Sie nicht verwendete Container, Netzwerke und Images, denen kein Name und kein Tag zugewiesen wurde.
Betrachten Sie diese Befehle nun genauer.
Container
▍ Beginn der Existenz des Containers
In der Anfangsphase der Arbeit mit Containern werden die Befehle
create
,
start
und
run
verwendet. Sie werden jeweils verwendet, um einen Container zu erstellen, ihn zu starten und ihn zu erstellen und zu starten.
Hier ist der Befehl zum Erstellen eines Containers aus einem Bild:
docker container create my_repo/my_image:my_tag
In den folgenden Beispielen wird das
my_repo/my_image:my_tag
auf
my_image
gekürzt.
Der Befehl
create
akzeptiert viele
Flags . Zum Beispiel kann es in der folgenden Form geschrieben werden:
docker container create -a STDIN my_image
Das Flag
-a
ist eine Kurzform des
--attach
. Mit diesem Flag können Sie den Container mit
STDIN
,
STDOUT
oder
STDERR
.
Nachdem der Container erstellt wurde, kann er mit dem folgenden Befehl gestartet werden:
docker container start my_container
Bitte beachten Sie, dass Sie auf den Container im Befehl entweder mit seiner
ID
oder seinem Namen verweisen können.
Schauen Sie sich nun den Befehl an, mit dem Sie den Container erstellen und ausführen können:
docker container run my_image
Dieser Befehl kann auch viele Befehlszeilenargumente akzeptieren. Betrachten Sie einige von ihnen mit einem Beispiel für eine solche Konstruktion:
docker container run -i -t -p 1000:8000 --rm my_image
Das Flag
-i
steht für
--interactive
. Dank dieses Flags
STDIN
der
STDIN
Stream auch dann offen, wenn der Container nicht mit
STDIN
.
Das Flag
-t
steht für
--tty
. Dank dieses Flags wird ein Pseudo-Terminal hervorgehoben, das das verwendete Terminal mit den Streams
STDIN
und
STDOUT
des Containers
STDIN
.
Um über das Terminal mit dem Container interagieren zu können, müssen Sie die Flags
-i
und
-t
zusammen verwenden.
Das Flag
-p
steht für
--port
. Ein Port ist eine Schnittstelle, über die ein Container mit der Außenwelt interagiert. Design
1000:8000
leitet den Docker
8000
Port an Port
1000
Computers um, auf dem der Container ausgeführt wird. Wenn in dem Container eine bestimmte Anwendung ausgeführt wird, die etwas an den Browser ausgeben kann, können Sie in unserem Fall auf den Browser unter
localhost:1000
zugreifen, um darauf zuzugreifen.
Das Flag
--rm
löscht den Container nach seiner Fertigstellung automatisch.
Schauen wir uns einige weitere Beispiele für den Befehl
run
:
docker container run -it my_image my_command
In einem solchen Entwurf kann der Befehl
sh
verwendet werden, der eine Terminalsitzung in einem Container erstellt, mit der über Ihr Terminal interagiert werden kann. Wenn Sie mit Bildern arbeiten, die auf Alpine basieren, ist es besser, sich auf
sh
als auf
bash
, da in diesen Bildern die
bash
standardmäßig nicht installiert ist. Verwenden Sie den
exit
exit, um die interaktive Sitzung zu
exit
.
Beachten Sie, dass wir hier die Flags
-i
und
-t
in
-it
kombiniert haben.
Hier ist ein weiteres Beispiel für die Arbeit mit dem Befehl
run
:
docker container run -d my_image
Das Flag
-d
steht für
--detach
. Dieser Befehl startet den Container im Hintergrund. Auf diese Weise können Sie das Terminal verwenden, von dem aus der Container gestartet wird, um andere Befehle auszuführen, während der Container ausgeführt wird.
▍Bestätigen des Containerstatus
Wenn Sie Docker-Container ausführen und wissen möchten, um welche Container es sich handelt, müssen Sie sie auflisten. Sie können dies mit dem folgenden Befehl tun:
docker container ls
Dieser Befehl zeigt eine Liste der ausgeführten Container an und enthält einige nützliche Informationen zu dieser Liste. Hier ist ein weiteres Beispiel für diesen Befehl:
docker container ls -a -s
Der Schalter
-a
dieses Befehls steht für
--all
. Mit dieser Taste können Sie Informationen zu allen Containern anzeigen und nicht nur zu laufenden.
Der
-s
ist eine Abkürzung für
--size
. Hier können Sie die Abmessungen der Container anzeigen.
Hier ist ein Befehl, der detaillierte Informationen zum Container anzeigt:
docker container inspect my_container
Hier ist der Befehl, der die Protokolle des Containers anzeigt:
docker container logs my_container
▍ Container herunterfahren
Manchmal muss ein Arbeitscontainer angehalten werden. Verwenden Sie dazu den folgenden Befehl:
docker container stop my_container
Sie können damit aufhören, Container auszuführen, und sie können ordnungsgemäß heruntergefahren werden. Der Container hat standardmäßig 10 Sekunden Zeit, um herunterzufahren.
Wenn der Container schnell gestoppt werden muss, ohne sich um den korrekten Abschluss seiner Arbeit sorgen zu müssen, können Sie den folgenden Befehl verwenden:
docker container kill my_container
Wenn Sie den Arbeitscontainer mit dem eingeschalteten Fernsehgerät vergleichen, ähnelt der Befehl
kill
dem Ausschalten des Fernsehgeräts, indem Sie ihn vom Stromnetz trennen. In den meisten Situationen wird daher empfohlen, den Befehl stop zu verwenden, um Container zu stoppen.
Hier ist ein Befehl, mit dem Sie alle laufenden Container schnell stoppen können:
docker container kill $(docker ps -q)
Um einen gestoppten Container zu löschen, können Sie den folgenden Befehl verwenden:
docker container rm my_container
Hier ist ein Befehl, mit dem Sie alle Container löschen können, die zum Zeitpunkt des Aufrufs dieses Befehls nicht ausgeführt wurden:
docker container rm $(docker ps -a -q)
Um diesen Abschnitt zusammenzufassen. Zuerst wird ein Container erstellt, dann wird er gestartet, oder diese beiden Schritte werden mit einem Befehl des Formular-
docker run my_container
. Danach wird die containerisierte Anwendung gestartet.
Dann wird der Container mit dem
docker stop my_container
gestoppt. Verwenden Sie zum Entfernen des Containers den
docker rm my_container
.
Lassen Sie uns nun über die Befehle sprechen, die zum Arbeiten mit Bildern verwendet werden, und zwar über die Vorlagen, aus denen die Container erstellt werden.
Die Bilder
▍Erstellen von Bildern
Hier ist ein Befehl, mit dem Sie Docker-Bilder sammeln können:
docker image build -t my_repo/my_image:my_tag .
In diesem Fall wird ein Bild mit dem Namen
my_image
. Während der Montage wird die Dockerfile-Datei verwendet, die sich unter dem angegebenen Pfad oder der angegebenen URL befindet.
Das Flag
-t
steht für
--tag
. Es teilt Docker mit, dass dem zu erstellenden Image das im Befehl angegebene Tag zugewiesen werden muss. In diesem Fall ist es
my_tag
.
Der Punkt am Ende des Befehls gibt an, dass das Bild mithilfe der Dockerfile-Datei im aktuellen Arbeitsverzeichnis erfasst werden muss.
Nachdem das Image zusammengestellt wurde, kann es an die Remote-Registrierung gesendet werden. Dank dessen können andere Benutzer es verwenden, es kann heruntergeladen und auf einem anderen Computer ausgeführt werden. Angenommen, Sie möchten den
Docker Hub verwenden . In diesem Fall müssen Sie dort ein Konto erstellen. Die Nutzung dieser Ressource ist kostenlos.
Nachdem Sie sich für den Docker Hub angemeldet haben, müssen Sie sich anmelden. Und obwohl der hierfür verwendete Befehl nicht direkt für Befehle gilt, die für die Arbeit mit Bildern vorgesehen sind, ist es hilfreich, ihn hier zu berücksichtigen. Dies ist der folgende Befehl:
docker login
Sie können sich bei Ihrem Docker Hub-Konto anmelden. Um sich anzumelden, müssen Sie einen Benutzernamen und ein Passwort eingeben.
Nach dem Anmelden können Sie Bilder an die Registrierung senden. Es wird so gemacht:
docker image push my_repo/my_image:my_tag
Nachdem Sie nun mehrere Arten von Bildern haben, können Sie diese mit speziellen Befehlen untersuchen.
▍ Bildrecherche
Hier ist der Befehl, der eine Liste von Bildern anzeigt, einschließlich Informationen zu ihrer Größe:
docker image ls
Mit dem folgenden Befehl können Sie Informationen zu den Zwischenbildern anzeigen, aus denen das Bild besteht, insbesondere Daten zu deren Größe und wie sie erstellt wurden:
docker image history my_image
Hier ist der Befehl, der detaillierte Informationen zum Bild anzeigt, einschließlich Daten zu den Ebenen, aus denen das Bild besteht:
docker image inspect my_image
Wenn Sie so viele Bilder erstellen, kann es vorkommen, dass einige davon gelöscht werden müssen.
▍Löschen Sie Bilder
Hier ist der Befehl, mit dem Sie das angegebene Bild löschen können:
docker image rm my_image
Wenn das Bild in einem Remote-Repository gespeichert ist, wird es von dort nicht gelöscht.
Hier ist ein Befehl, mit dem Sie alle lokalen Bilder löschen können:
docker image rm $(docker images -a -q)
Verwenden Sie diesen Befehl mit Vorsicht. Beachten Sie jedoch, dass im Remote-Repository gespeicherte Bilder bei der Verwendung nicht gelöscht werden. Dies ist einer der Vorteile des Speicherns von Bildern in Repositorys.
Wir haben die grundlegenden Befehle zum Verwalten von Containern und Bildern untersucht. Lassen Sie uns nun über weitere Teams sprechen.
Verschiedene Teams
Hier ist der Befehl, der Versionsinformationen für den Docker-Client und -Server anzeigt:
docker version
Dieser Ihnen bereits bekannte Befehl wird zum Aufrufen der Docker-Registrierung verwendet:
docker login
Mit diesem Befehl können Sie nicht verwendete Container, Netzwerke und Bilder löschen
, denen kein Name und kein Tag zugewiesen wurden :
docker system prune
Hier ist ein Beispiel für seine Verwendung:
docker system prune -a --volumes
Der Schalter
-a
ist eine Abkürzung für
--all
und ermöglicht das Löschen nicht verwendeter Bilder und nicht nur von Bildern, denen kein Name und kein Tag zugewiesen wurde.
Mit
--volumes
können
--volumes
nicht verwendete Volumes löschen.
Zusammenfassung
In diesem Artikel haben wir die nützlichen Docker-Befehle behandelt. Wenn Sie gerade erst mit Docker arbeiten, sollten Sie die folgenden drei wichtigsten Befehle beachten:
Erstellen und Ausführen eines Containers:
docker container run my_image
Bild erstellen:
docker image build -t my_repo/my_image:my_tag .
Hochladen des Images in ein Remote-Repository:
docker image push my_repo/my_image:my_tag
Um Hilfe zu Docker-Befehlen zu erhalten, können Sie den
docker
Befehl im Terminal ausführen.
Hier finden Sie Hilfe zur Docker-Befehlszeilenschnittstelle.
Nächstes Mal werden wir über die Arbeit mit Daten in Docker sprechen.
Liebe Leser! Wenn Sie mit Docker arbeiten, haben Sie wahrscheinlich eine eigene Liste häufig verwendeter Befehle. Wenn ja, teilen Sie diese Liste bitte.
