Docker kapsayıcı kimliğini kapsayıcı adından alma komutu nedir?
docker --list
Veya benzeri nasıl görünüyor? Yeni bir kap oluşturma komutu nedir? vb
Docker kapsayıcı kimliğini kapsayıcı adından alma komutu nedir?
docker --list
Veya benzeri nasıl görünüyor? Yeni bir kap oluşturma komutu nedir? vb
Yanıtlar:
Linux'ta:
sudo docker ps -aqf "name=containername"
Veya OS X, Windows'ta:
docker ps -aqf "name=containername"
containername
kapsayıcı adınız nerede .
@Llia Sidorenko'nun belirttiği gibi yanlış pozitifler almamak için normal ifade bağlantılarını şu şekilde kullanabilirsiniz:
docker ps -aqf "name=^containername$"
açıklama:
-q
sessizlik için. sadece kimliği çıkar-a
hepsi için. kapsayıcınız çalışmasa bile çalışır-f
için filtre .^
kapsayıcı adı bu dizeyle başlamalıdır$
kapsayıcı adı bu dizeyle bitmelidir--no-trunc
bayrağı kullanır . sodocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
benim için çalıştı.
Bunu deneyebilirsiniz:
docker inspect --format="{{.Id}}" container_name
Bu yaklaşım işletim sisteminden bağımsızdır.
NAMES
sütununda verilen) sağlarsanız docker ps
, konteyner kimliğini verir. Bunun yerine görüntü adı ( IMAGE
ile sütunda verilir docker ps
) sağlanırsa, bunun yerine görüntü kimliğini verir.
Çalışan kapsayıcıların kapsayıcı kimliklerini alın:
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Tüm kapsayıcıların kapsayıcı kimliklerini alın:
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
docker ps -fq
işe yaramadı ancak işe docker ps -qf
yaradı (bayrakların sırası)
Aşağıdaki komut:
docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image: {{.Image}} | Ports: {{.Ports}}'
Bu çıktıyı verir:
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`
Kapsayıcı adına göre tam ContainerId almak istiyorsanız, aşağıdaki komutu kullanın
docker ps --no-trunc -aqf name=containername
Docker görüntüsünü inceleyin ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
Benim durumumda Ubuntu 20.04'te Tensorflow Docker konteynerini çalıştırıyordum: Docker konteynerinizi One terminalde çalıştırın,
docker run -it od
Ve sonra başka bir terminal başlattı ve docker ps
sudo ile aşağıya koştu :
sudo docker ps
Kapsayıcı kimliğini başarıyla aldım:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
Düşünebileceğim en basit yol, çıktısını ayrıştırmaktır. docker ps
En son ubuntu görüntüsünü etkileşimli olarak çalıştıralım ve ona bağlanalım
docker run -it ubuntu /bin/bash
Eğer çalıştırırsanız docker ps
başka terminalde gibi bir şey görebilirsiniz
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
Maalesef, bu biçimi ayrıştırmak kolay değil, çünkü malzemeleri manuel olarak hizalamak için boşluk kullanıyorlar
$ 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@@@@@@
İşte çıktıyı JSON'a dönüştüren bir betik.
https://gist.github.com/mminer/a08566f13ef687c17b39
Aslında, çıktıyla çalışmak bundan biraz daha uygun. Her alan 20 karakter genişliğindedir.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]