कंटेनर नाम से डॉकटर कंटेनर आईडी प्राप्त करें


111

कंटेनर नाम से डॉक कंटेनर आईडी प्राप्त करने के लिए क्या कमांड है?


4
मैं अभी कोशिश कर रहा हूँ, कोई भी नमूना ऑनलाइन नहीं मिला। मतदान के लिए धन्यवाद, मुझे खुश लोग पसंद हैं।
दिमित्री कोपरीवा

आपको पढ़ना चाहिए कि कैसे पूछें और एक न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण प्रदान करें । कैसा docker --listया कैसा दिखता है? नया कंटेनर बनाने के लिए कमांड क्या है? आदि
फेडोरक्वी 'एसओ ने har

1
मुझे लगता है कि मेरा सवाल बहुत स्पष्ट है, कृपया मुझे जवाब दें मैं जवाब दूंगा।
दिमित्री कोपरीवा

1
"कंटेनर" जैसी कोई चीज नहीं है जिसे मैं बैश में जानता हूं। शायद आपका मतलब है डॉकटर कंटेनर? यदि ऐसा है, तो "बैश" टैग देखने वाले लोग भ्रमित हो सकते हैं। हालाँकि आपको नाम से कंटेनर आईडी मिलता है, मुझे यकीन है कि यह एक वास्तविक कमांड है और इसका बश प्रोग्रामिंग भाषा से कोई लेना-देना नहीं है।
djhaskin987

जवाबों:


191

लिनक्स में:

sudo docker ps -aqf "name=containername"

या ओएस एक्स, विंडोज में:

docker ps -aqf "name=containername"

कहाँ पे containernameआपका कंटेनर नाम है

झूठे सकारात्मक होने से बचने के लिए, @llia Sidorenko नोट के रूप में, आप regex एंकर का उपयोग कर सकते हैं जैसे:

docker ps -aqf "name=^containername$"

स्पष्टीकरण:

  • -qचुप के लिए। केवल आईडी का उत्पादन
  • -aसबके लिए। अगर आपका कंटेनर नहीं चल रहा है तो भी काम करता है
  • -fके लिए फिल्टर
  • ^कंटेनर का नाम इस स्ट्रिंग से शुरू होना चाहिए
  • $कंटेनर का नाम इस स्ट्रिंग के साथ समाप्त होना चाहिए

7
इस पर ठोकर खाने वाले किसी भी व्यक्ति के लिए एक नोट: सूडो को अब लाइनक्स की आवश्यकता नहीं है यदि आप अपने आप को
डॉकटर

9
कृपया इस उत्तर के साथ सावधान रहें, जैसा कि नाम = कंसर्न का नाम वास्तव में एक वाइल्डकार्ड है और यह नाम के साथ कुछ भी मेल करेगा ((? *) कंसर्नमेम (! *)
इलिया सिदेंको

5
@ फेकिस --no-truncध्वज का उपयोग करते हैं । sodocker ps --no-trunc -aqf "name=containername"
कोड_मनस्क

3
2019-01-07 तक, यह मेरे लिए काम नहीं करता था। मैं docker v17.06.0 का उपयोग कर रहा हूं। आज्ञा docker inspect --format="{{.Id}}" imageNameने मेरे लिए काम किया।
पैट्स

1
@code_monk, पुष्टि के लिए धन्यवाद। मैंने Rosberg Linhares उत्तर में एक टिप्पणी जोड़ दी है, जहां से मुझे यह विचार मिला है, और सुझाव दिया कि उसके उत्तर को सही उत्तर में बदल दिया जाए।
पाट्स

37

आप यह कोशिश कर सकते हैं:

docker inspect --format="{{.Id}}" container_name

यह दृष्टिकोण ओएस स्वतंत्र है।


5
यह IMAGE ID NOT CONTAINER ID
vijay

2
@vijay, मेरे लिए यह कंटेनर ID देता है: https://i.ibb.co/BPwyxDj/Docker-Container-Id.png
Rosberg Linhares

यह मुझे कंटेनर आईडी भी देता है। पूर्ण कंटेनर आईडी, न केवल पहले 12 वर्णों को काट दिया।
सहकर्मी

यह पसंद है! धन्यवाद। 👍
GollyJer

@vijay @RosbergLinhares यदि आप कंटेनर का नाम प्रदान करते हैं ( NAMESकॉलम में दिया गया है docker ps), तो यह कंटेनर आईडी देता है। यदि छवि नाम ( इसके IMAGEसाथ कॉलम में दिया गया docker ps) प्रदान किया गया है, तो यह छवि आईडी को इसके बजाय आउटपुट करता है।
वोल्फसन

12
  1. कंटेनर चलाने के कंटेनर Ids प्राप्त करें ::

    $docker ps -qf "name=IMAGE_NAME"
    
        -f: Filter output based on conditions provided
        -q: Only display numeric container IDs
    
  2. सभी कंटेनरों के कंटेनर Ids प्राप्त करें ::

    $docker ps -aqf "name=IMAGE_NAME"
    
        -a: all containers
    

2
docker ps -fq हालांकि काम नहीं docker ps -qfकिया (झंडे का क्रम)
thom_nic

4

निम्नलिखित आदेश:

docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image:  {{.Image}} |  Ports: {{.Ports}}'

यह आउटपुट देता है:

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`

3

यदि आप कंटेनर नाम के आधार पर पूर्ण कंटेनर प्राप्त करना चाहते हैं तो निम्न कमांड का उपयोग करें

 docker ps --no-trunc -aqf name=containername

0

डॉकर छवि ImageName \ ImageId --format = {{'। ConatinerConfig.Hostname। "}} का निरीक्षण करती है


कृपया अपने उत्तर में एक स्पष्टीकरण जोड़ें। उत्तर जो केवल कोड हैं (या केवल इस मामले में) नए उपयोगकर्ताओं के लिए सहायक नहीं हैं, जो यह नहीं समझ सकते हैं कि कमांड या कोड वास्तव में क्या करता है। यह खराब क्यों है, इसके लिए कार्गो पंथ प्रोग्रामिंग देखें।
मैक्स वोल्मर

0

मेरे मामले में मैं Ubuntu 20.04 में Tensorflow Docker कंटेनर चला रहा था: एक टर्मिनल में अपना डॉकटर कंटेनर चलाएं, मैंने इसके साथ भाग लिया

docker run -it od

और फिर एक और टर्मिनल शुरू किया और docker psसूडो के साथ नीचे भागा :

sudo docker ps

मुझे सफलतापूर्वक कंटेनर आईडी मिला:

CONTAINER ID        IMAGE               COMMAND             CREATED             
STATUS              PORTS               NAMES
e4ca1ad20b84        od                  "/bin/bash"         18 minutes ago      
Up 18 minutes                           unruffled_stonebraker

-2

सबसे आसान तरीका है जिसके बारे में मैं सोच सकता हूं कि इसका आउटपुट पार्स करना है docker ps

आइए नवीनतम ubuntu छवि को अंतःक्रियात्मक रूप से चलाएं और इससे जुड़ें

docker run -it ubuntu /bin/bash

यदि आप docker psदूसरे टर्मिनल में चलते हैं , तो आप कुछ देख सकते हैं

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
8fddbcbb101c        ubuntu:latest       "/bin/bash"         10 minutes ago      Up 10 minutes                           gloomy_pasteur

दुर्भाग्य से, इस प्रारूप को पार्स करना आसान नहीं है क्योंकि वे सामान को मैन्युअल रूप से संरेखित करने के लिए रिक्त स्थान का उपयोग करते हैं

$ 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@@@@@@

यहाँ एक स्क्रिप्ट है जो आउटपुट को JSON में परिवर्तित करती है।

https://gist.github.com/mminer/a08566f13ef687c17b39

वास्तव में, आउटपुट इसके साथ काम करने के लिए थोड़ा अधिक सुविधाजनक है। हर क्षेत्र 20 वर्ण चौड़ा है। [['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.