Ich versuche es gerade, konnte online keine Probe finden. Danke für die Abstimmung, ich mag glückliche Menschen.
Dimitri Kopriwa
Sie sollten How to Ask lesen und ein minimal reproduzierbares Beispiel bereitstellen . Wie sieht docker --listoder ähnliches aus? Was ist der Befehl zum Erstellen eines neuen Containers? etc
fedorqui 'SO hör auf zu schaden'
1
Ich denke, meine Frage ist ziemlich klar. Bitte stimmen Sie ab. Ich werde die Antwort so schnell wie möglich geben.
Dimitri Kopriwa
1
Es gibt keinen "Container", den ich in Bash kenne. Vielleicht meinst du Docker- Container? Wenn ja, könnten Leute, die das "Bash" -Tag sehen, verwirrt werden. Wie auch immer Sie die Container-ID aus dem Namen erhalten, ich bin sicher, dass es sich um einen tatsächlichen Befehl handelt und nichts mit der Bash-Programmiersprache zu tun hat.
Djhaskin987
Antworten:
189
Unter Linux:
sudo docker ps -aqf "name=containername"
Oder in OS X, Windows:
docker ps -aqf "name=containername"
Wo containernameist dein Containername?
Um Fehlalarme zu vermeiden, können Sie, wie @llia Sidorenko feststellt, Regex-Anker wie folgt verwenden:
docker ps -aqf "name=^containername$"
Erläuterung:
-qfür ruhig. Geben Sie nur die ID aus
-afür alle. funktioniert auch, wenn Ihr Container nicht läuft
Ein Hinweis für alle, die darauf stoßen: sudo wird unter Linux nicht mehr benötigt, wenn Sie sich der Docker-Gruppe hinzufügen (sehr zu empfehlen)
code_monk
9
Bitte seien Sie vorsichtig mit dieser Antwort, da Name = Containername eigentlich ein Platzhalter ist und alles mit Name (. *) Containername (. *) Übereinstimmt
Ilia Sidorenko
5
@ekkis verwenden die --no-truncFlagge. sodocker ps --no-trunc -aqf "name=containername"
code_monk
3
Ab dem 07.01.2019 hat dies bei mir nicht funktioniert. Ich verwende Docker v17.06.0. Der Befehl docker inspect --format="{{.Id}}" imageNamehat bei mir funktioniert.
PatS
1
@code_monk, Danke für die Bestätigung. Ich habe der Antwort von Rosberg Linhares einen Kommentar hinzugefügt, von dem ich auf die Idee gekommen bin, und vorgeschlagen, seine Antwort in die richtige Antwort zu ändern.
Dies gibt mir auch die Container-ID. Die vollständige Container-ID, nicht nur die abgeschnittenen ersten 12 Zeichen.
Cowlinator
Ich liebe diesen! Vielen Dank. 👍
GollyJer
@vijay @RosbergLinhares Wenn Sie den Namen des Containers angeben (in der NAMESSpalte mit angegeben docker ps), wird die Container-ID angegeben. Wenn stattdessen der Bildname (in der IMAGESpalte mit angegeben docker ps) angegeben wird, wird stattdessen die Bild-ID ausgegeben .
Wolfson
12
Container-IDs von laufenden Containern abrufen ::
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Container-IDs aller Container abrufen ::
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
Bitte fügen Sie Ihrer Antwort eine Erklärung hinzu. Antworten, die nur Code (oder in diesem Fall nur Befehl) sind, sind für neue Benutzer nicht hilfreich, die möglicherweise nicht verstehen, was der Befehl oder Code tatsächlich tut. Suchen Sie in der Frachtkult-Programmierung nach, warum dies schlecht ist.
Max Vollmer
0
In meinem Fall habe ich den Tensorflow Docker-Container in Ubuntu 20.04 ausgeführt: Führen Sie Ihren Docker-Container in einem Terminal aus, mit dem ich ihn ausgeführt habe
docker run -it od
Und dann startete ein anderes Terminal und lief unten docker psmit sudo:
sudo docker ps
Ich habe erfolgreich die Container-ID erhalten:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
Tatsächlich ist die Ausgabe etwas bequemer. Jedes Feld ist 20 Zeichen breit.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]
docker --list
oder ähnliches aus? Was ist der Befehl zum Erstellen eines neuen Containers? etcAntworten:
Unter Linux:
Oder in OS X, Windows:
Wo
containername
ist dein Containername?Um Fehlalarme zu vermeiden, können Sie, wie @llia Sidorenko feststellt, Regex-Anker wie folgt verwenden:
Erläuterung:
-q
für ruhig. Geben Sie nur die ID aus-a
für alle. funktioniert auch, wenn Ihr Container nicht läuft-f
für Filter .^
Containername muss beginnen mit dieser Zeichenfolge$
Der Containername muss mit dieser Zeichenfolge endenquelle
--no-trunc
Flagge. sodocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
hat bei mir funktioniert.Sie können dies versuchen:
Dieser Ansatz ist vom Betriebssystem unabhängig.
quelle
NAMES
Spalte mit angegebendocker ps
), wird die Container-ID angegeben. Wenn stattdessen der Bildname (in derIMAGE
Spalte mit angegebendocker ps
) angegeben wird, wird stattdessen die Bild-ID ausgegeben .Container-IDs von laufenden Containern abrufen ::
Container-IDs aller Container abrufen ::
quelle
docker ps -fq
funktionierte jedochdocker ps -qf
nicht (Reihenfolge der Flaggen)Der folgende Befehl:
Gibt diese Ausgabe:
quelle
Wenn Sie eine vollständige Container-ID basierend auf dem Containernamen erhalten möchten, verwenden Sie den folgenden Befehl
quelle
Docker-Image inspizieren ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
quelle
In meinem Fall habe ich den Tensorflow Docker-Container in Ubuntu 20.04 ausgeführt: Führen Sie Ihren Docker-Container in einem Terminal aus, mit dem ich ihn ausgeführt habe
Und dann startete ein anderes Terminal und lief unten
docker ps
mit sudo:Ich habe erfolgreich die Container-ID erhalten:
quelle
Der einfachste Weg, den ich mir vorstellen kann, besteht darin, die Ausgabe von zu analysieren
docker ps
Lassen Sie uns das neueste Ubuntu-Image interaktiv ausführen und eine Verbindung herstellen
Wenn Sie
docker ps
in einem anderen Terminal laufen , können Sie so etwas sehenLeider ist das Parsen dieses Formats nicht einfach, da Leerzeichen zum manuellen Ausrichten verwendet werden
Hier ist ein Skript, das die Ausgabe in JSON konvertiert.
https://gist.github.com/mminer/a08566f13ef687c17b39
Tatsächlich ist die Ausgabe etwas bequemer. Jedes Feld ist 20 Zeichen breit.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]
quelle