Qual é o comando para obter a ID do contêiner do docker do nome do contêiner?
docker --list
ou semelhante? Qual é o comando para criar um novo container? etc
Qual é o comando para obter a ID do contêiner do docker do nome do contêiner?
docker --list
ou semelhante? Qual é o comando para criar um novo container? etc
Respostas:
No Linux:
sudo docker ps -aqf "name=containername"
Ou no OS X, Windows:
docker ps -aqf "name=containername"
onde containername
está o nome do seu contêiner.
Para evitar a obtenção de falsos positivos, como observa @llia Sidorenko, você pode usar âncoras regex como:
docker ps -aqf "name=^containername$"
explicação:
-q
para o silêncio. saída apenas o ID-a
para todos. funciona mesmo se seu contêiner não estiver em execução-f
para filtro .^
o nome do contêiner deve começar com esta string$
o nome do contêiner deve terminar com esta string--no-trunc
bandeira. entãodocker ps --no-trunc -aqf "name=containername"
docker inspect --format="{{.Id}}" imageName
funcionou para mim.
Você pode tentar isto:
docker inspect --format="{{.Id}}" container_name
Essa abordagem é independente do sistema operacional.
NAMES
coluna com docker ps
), ele fornecerá o ID do contêiner. Se o nome da imagem (fornecido na IMAGE
coluna com docker ps
) for fornecido, em vez disso, será gerado o ID da imagem.
Obtenha IDs de contêineres de contêineres em execução ::
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
Obtenha IDs de contêineres de todos os contêineres ::
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
docker ps -fq
não funcionou, no entanto, docker ps -qf
funcionou (ordem das bandeiras)
O seguinte comando:
docker ps --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | Image: {{.Image}} | Ports: {{.Ports}}'
Dá esta saída:
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 você deseja obter o ContainerId completo com base no nome do contêiner, use o seguinte comando
docker ps --no-trunc -aqf name=containername
Inspecionar imagem Docker ImageName \ ImageId --format = {{'. ConatinerConfig.Hostname'}}
No meu caso, eu estava executando o contêiner do Tensorflow Docker no Ubuntu 20.04: execute o contêiner do docker em um terminal, eu o executei com
docker run -it od
E então iniciei outro terminal e executei abaixo docker ps
com sudo:
sudo docker ps
Obtive com sucesso a id do contêiner:
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
e4ca1ad20b84 od "/bin/bash" 18 minutes ago
Up 18 minutes unruffled_stonebraker
A maneira mais simples que consigo pensar é analisar a saída de docker ps
Vamos rodar a última imagem do ubuntu interativamente e conectar a ela
docker run -it ubuntu /bin/bash
Se você executar docker ps
em outro terminal, poderá ver algo como
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
Infelizmente, analisar este formato não é fácil, pois eles usam espaços para alinhar manualmente as coisas
$ 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@@@@@@
Aqui está um script que converte a saída em JSON.
https://gist.github.com/mminer/a08566f13ef687c17b39
Na verdade, a saída é um pouco mais conveniente de se trabalhar do que isso. Cada campo tem 20 caracteres de largura.
[['CONTAINER ID',0],['IMAGE',20],['COMMAND',40],['CREATED',60],['STATUS',80],['PORTS',100],['NAMES',120]]