GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Nützliche Beispiele für den Docker-ps-Befehl

Einer der ersten Docker-Befehle, die Sie verwenden, ist docker ps Befehl. Es zeigt die laufenden Container:

docker ps

Wenn Sie diesen Befehl ausführen, erhalten Sie tatsächlich eine Liste der ausgeführten Container und ihre eindeutige Container-ID, den Image-Namen, den ausgeführten Befehl, die Zeit seit der Ausführung (Betriebszeit) und die verwendeten Ports.

Aber man kann damit noch ein bisschen mehr machen. Sie können angehaltene Container anzeigen, das Ergebnis filtern oder nur die Container-IDs anzeigen.

Sehen wir uns diesen wichtigen Docker-Befehl etwas genauer an.

Der docker ps-Befehl

Docker hat einen Alias, um alle laufenden Container mit einer POSIX-freundlichen Namenskonvention anzuzeigen.

Das ist das ps Unterbefehl in Docker. Es ist ein Alias ​​von docker container ls . Was, wie Sie sich denken können, zum Auflisten von Docker-Containern verwendet wird.

Hier ist ein Beispiel für die Ausführung von docker ps auf meinem Computer:

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Wie Sie sehen können, zeigt dieser Befehl Details zu allen laufenden Containern an.

Die angezeigten Details sind die eindeutige ID des Containers, der Name des Images, der Befehl, den der Container ausführt, das Datum, an dem der Container erstellt wurde, die Betriebszeit, zugeordnete Ports und der Containername.

Als Systemadministrator verwenden Sie diesen Befehl häufig in einem Skript. Docker bietet einige Optionen, die hilfreich sein können, wenn Sie docker ps ausführen in einem Skript.

Zeige alle Container (nicht nur die laufenden)

Als UNIX ps Befehl verwendet wird, um Prozesse (Programme, die ausgeführt werden) anzuzeigen, verhält sich Docker ähnlich.

Ausführen von docker ps zeigt nur die aktiven Docker-Container an.

Wenn Sie einen laufenden Container stoppen, existiert er noch, nur dass er nicht mehr läuft.

Um die Container anzuzeigen, die sich im gestoppten Zustand befinden, verwenden Sie --all (oder -a ) Option wie folgt:

docker ps --all

Ich habe den Container transmission_web gestoppt . Mal sehen, was ich in der Ausgabe bekomme.

$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Wie Sie sehen können, ist das -a Option zeigt auch einen Container, der angehalten wurde.

Filtern Sie die Ausgabe von docker ps für ein genaueres Ergebnis

Das docker ps Befehl hat eine sehr nützliche Option, --filter (oder -f kurz).

Wie aus dem Optionsnamen hervorgeht, können Sie die Container mithilfe der folgenden Felder herausfiltern:

  • id
  • name
  • label
  • exited
  • status
  • ancestor
  • since
  • volume
  • publish
  • health
  • isolation

Ich habe einen Container namens nextcloud_server erstellt . Ich möchte Details zu Containern sehen, aber nur solche mit dem gesuchten Namen. Lassen Sie uns sehen, wie der name verwendet wird filtern.

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

Ich habe mehrere Container ausgeführt, die aber den name verwenden Filter zeigt mir nur die Container, die mit dem Namen übereinstimmen.

Versuchen wir es mit der id Filter. Ich habe einen MariaDB-Container mit der ID "140161b8b139". Ich werde den folgenden Befehl verwenden, um das zu erreichen.

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

Leicht! Ich habe den Container mit der übereinstimmenden ID erhalten.

Container in der Reihenfolge ihrer Erstellung anzeigen

Ja, Sie können Container nach ihrem Erstellungsdatum sortiert auflisten, indem Sie --latest verwenden (oder l kurz).

Die Reihenfolge ist die neueste oben und die älteste unten.

Hier ist eine Beispielausgabe der Ausführung des Befehls docker ps --latest auf meinem Computer:

$ docker ps --latest
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                      PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   15 hours ago   Up 15 hours                 0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  16 hours ago   Exited (137) 16 hours ago                                           transmission_web

Es gibt ein paar Fallstricke bei diesem Befehl.

  • Container, die als "Abhängigkeit" verwendet werden, werden nicht aufgelistet
  • Die Ausgabe enthält alle Containerzustände (d. h. auch angehaltene Container werden aufgelistet)

Ich hatte den Container „nextcloud_server“ mit MariaDB als „Abhängigkeit“ erstellt. Dieser Container wird also nicht in der Ausgabe aufgeführt, wenn --latest verwendet wird Flagge.

Viel Scripting? Nur Container-IDs anzeigen

Angenommen, Sie schreiben ein Skript und möchten sich nur mit Container-IDs befassen, damit Sie Aktionen für Container ausführen können. Dafür können Sie den --quiet verwenden (oder -q kurz) Option.

Unten ist die Ausgabe der Ausführung von docker ps -q auf meinem Computer.

$ docker ps -q
58c7013a49c3
140161b8b139

Wie Sie sehen können, besteht die Ausgabe nur aus Container-IDs (von Containern, die ausgeführt werden) und sonst nichts.

Wie Sie sehen können, beinhaltet der Docker-Befehl ps mehr als nur die Anzeige der laufenden Containerinformationen. Lassen Sie mich wissen, wenn Sie etwas Neues gelernt haben oder ein anderes nützliches Beispiel für docker ps kennen Befehl.


Linux
  1. 12 nützliche Wget-Befehlsbeispiele unter Linux

  2. ls-Befehl unter Linux:17 nützliche Beispiele erklärt

  3. 9 Nützliche Beispiele für den Split-Befehl in Linux

  4. 5 praktische Beispiele des dd-Befehls unter Linux

  5. So verwenden Sie den id-Befehl unter Linux:5 nützliche Beispiele

Nützliche Wget-Befehlsbeispiele im Linux-System

20 nützliche Beispiele für Docker-Volume-Befehle für moderne Entwickler

10 Nützliche Beispiele für den Sort-Befehl in Linux

Wesentliche Beispiele des ps-Befehls in Linux

15 super nützliche Beispiele für den Find-Befehl in Linux

12 Nützliche Beispiele für Linux-Datumsbefehle