Wie lautet der Befehl, um die Docker-Container-ID aus dem Containernamen abzurufen?
docker --list
oder ähnliches aus? Was ist der Befehl zum Erstellen eines neuen Containers? etc
Wie lautet der Befehl, um die Docker-Container-ID aus dem Containernamen abzurufen?
docker --list
oder ähnliches aus? Was ist der Befehl zum Erstellen eines neuen Containers? etc
Antworten:
Unter Linux:
sudo docker ps -aqf "name=containername"
Oder in OS X, Windows:
docker ps -aqf "name=containername"
Wo containername
ist 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:
-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 enden--no-trunc
Flagge. sodocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
hat bei mir funktioniert.
Sie können dies versuchen:
docker inspect --format="{{.Id}}" container_name
Dieser Ansatz ist vom Betriebssystem unabhängig.
NAMES
Spalte mit angegeben docker ps
), wird die Container-ID angegeben. Wenn stattdessen der Bildname (in der IMAGE
Spalte mit angegeben docker ps
) angegeben wird, wird stattdessen die Bild-ID ausgegeben .
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
docker ps -fq
funktionierte jedoch docker ps -qf
nicht (Reihenfolge der Flaggen)
Der folgende Befehl:
docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image: {{.Image}} | Ports: {{.Ports}}'
Gibt diese Ausgabe:
CONTAINER ID : d8453812a556 | Name: peer0.ORG2.ac.ae | Image: hyperledger/fabric-peer:1.4 | Ports: 0.0.0.0:27051->7051/tcp, 0.0.0.0:27053->7053/tcp
CONTAINER ID : d11bdaf8e7a0 | Name: peer0.ORG1.ac.ae | Image: hyperledger/fabric-peer:1.4 | Ports: 0.0.0.0:17051->7051/tcp, 0.0.0.0:17053->7053/tcp
CONTAINER ID : b521f48a3cf4 | Name: couchdb1 | Image: hyperledger/fabric-couchdb:0.4.15 | Ports: 4369/tcp, 9100/tcp, 0.0.0.0:5985->5984/tcp
CONTAINER ID : 14436927aff7 | Name: ca.ORG1.ac.ae | Image: hyperledger/fabric-ca:1.4 | Ports: 0.0.0.0:7054->7054/tcp
CONTAINER ID : 9958e9f860cb | Name: couchdb | Image: hyperledger/fabric-couchdb:0.4.15 | Ports: 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp
CONTAINER ID : 107466b8b1cd | Name: ca.ORG2.ac.ae | Image: hyperledger/fabric-ca:1.4 | Ports: 0.0.0.0:7055->7054/tcp
CONTAINER ID : 882aa0101af2 | Name: orderer1.o1.ac.ae | Image: hyperledger/fabric-orderer:1.4 | Ports: 0.0.0.0:7050->7050/tcp`enter code here`
Wenn Sie eine vollständige Container-ID basierend auf dem Containernamen erhalten möchten, verwenden Sie den folgenden Befehl
docker ps --no-trunc -aqf name=containername
Docker-Image inspizieren ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
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 ps
mit 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
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
docker run -it ubuntu /bin/bash
Wenn Sie docker ps
in einem anderen Terminal laufen , können Sie so etwas sehen
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
Leider ist das Parsen dieses Formats nicht einfach, da Leerzeichen zum manuellen Ausrichten verwendet werden
$ sudo docker ps | sed -e 's/ /@/g'
CONTAINER@ID@@@@@@@@IMAGE@@@@@@@@@@@@@@@COMMAND@@@@@@@@@@@@@CREATED@@@@@@@@@@@@@STATUS@@@@@@@@@@@@@@PORTS@@@@@@@@@@@@@@@NAMES
8fddbcbb101c@@@@@@@@ubuntu:latest@@@@@@@"/bin/bash"@@@@@@@@@13@minutes@ago@@@@@@Up@13@minutes@@@@@@@@@@@@@@@@@@@@@@@@@@@gloomy_pasteur@@@@@@
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]]