Docker lernen, Teil 5: Befehle

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 Daten


Rü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.

Source: https://habr.com/ru/post/de440660/


All Articles