Qual è il comando per ottenere l'ID del contenitore docker dal nome del contenitore?
docker --list
o simile? Qual è il comando per creare un nuovo contenitore? ecc
Qual è il comando per ottenere l'ID del contenitore docker dal nome del contenitore?
docker --list
o simile? Qual è il comando per creare un nuovo contenitore? ecc
Risposte:
In Linux:
sudo docker ps -aqf "name=containername"
O in OS X, Windows:
docker ps -aqf "name=containername"
dove containername
il nome del tuo contenitore.
Per evitare di ottenere falsi positivi, come nota @llia Sidorenko, puoi utilizzare le ancore regex in questo modo:
docker ps -aqf "name=^containername$"
spiegazione:
-q
per la calma. emette solo l'ID-a
per tutti. funziona anche se il tuo contenitore non è in esecuzione-f
per filtro .^
il nome del contenitore deve iniziare con questa stringa$
il nome del contenitore deve terminare con questa stringa--no-trunc
bandiera. quindidocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
funzionato per me.
Puoi provare questo:
docker inspect --format="{{.Id}}" container_name
Questo approccio è indipendente dal sistema operativo.
NAMES
colonna con docker ps
), fornisce l'ID del contenitore. Se invece viene fornito il nome dell'immagine (fornito nella IMAGE
colonna con docker ps
), restituisce invece l'ID dell'immagine.
Ottieni ID container dei container in esecuzione:
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Ottieni gli ID contenitore di tutti i contenitori:
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
docker ps -fq
non ha funzionato tuttavia docker ps -qf
ha funzionato (ordine delle bandiere)
Il seguente comando:
docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image: {{.Image}} | Ports: {{.Ports}}'
Fornisce questo output:
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`
Se desideri ottenere un ID contenitore completo in base al nome del contenitore, utilizza il comando seguente
docker ps --no-trunc -aqf name=containername
Immagine Docker ispeziona ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
Nel mio caso stavo eseguendo Tensorflow Docker container in Ubuntu 20.04: esegui il tuo docker container in un terminale, l'ho eseguito con
docker run -it od
E poi ha avviato un altro terminale ed è corso di seguito docker ps
con sudo:
sudo docker ps
Ho ottenuto con successo l'ID del contenitore:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
Il modo più semplice a cui posso pensare è analizzare l'output di docker ps
Eseguiamo l'ultima immagine di Ubuntu in modo interattivo e connettiamoci ad essa
docker run -it ubuntu /bin/bash
Se esegui docker ps
in un altro terminale puoi vedere qualcosa di simile
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
Sfortunatamente, analizzare questo formato non è facile poiché utilizza gli spazi per allineare manualmente le cose
$ 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@@@@@@
Ecco uno script che converte l'output in JSON.
https://gist.github.com/mminer/a08566f13ef687c17b39
In realtà, l'output è un po 'più comodo con cui lavorare. Ogni campo è largo 20 caratteri.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]