从容器名称获取docker容器ID

时间:2015-12-28 16:14:39

标签: docker

从容器名称获取docker容器ID的命令是什么?

12 个答案:

答案 0 :(得分:122)

在Linux中:

sudo docker ps -aqf "name=containername"

或在OS X中:

docker ps -aqf "name=containername"

其中containername是您的容器名称

说明:

  • -q安静。仅输出ID
  • -a为所有人。即使你的容器没有运行也能正常工作
  • -f代表filter

答案 1 :(得分:25)

你可以试试这个:

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

这种方法与操作系统无关。

答案 2 :(得分:8)

  1. 获取正在运行容器的容器ID ::

    $docker ps -qf "name=IMAGE_NAME"
    
        -f: Filter output based on conditions provided
        -q: Only display numeric container IDs
    
  2. 获取所有容器的容器ID ::

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

答案 3 :(得分:2)

如果要基于Container名称获取完整的ContainerId,请使用以下命令

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

答案 4 :(得分:0)

Docker映像检查ImageName \ ImageId --format = {{'。ConatinerConfig.Hostname'}}

答案 5 :(得分:0)

以下命令:

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`

答案 6 :(得分:0)

在我的情况下,我在Ubuntu 20.04中运行Tensorflow Docker容器:在一个终端中运行您的Docker容器,我用

运行它
docker run -it od

然后启动另一个终端,并使用sudo在docker ps下运行:

sudo docker ps

我成功获得了容器ID:

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

答案 7 :(得分:0)

我尝试了sudo docker container stats,它将给出容器ID以及内存使用情况和名称等详细信息。如果您想停止查看该进程,请执行Ctrl+C。我希望您觉得它有用。

答案 8 :(得分:0)

我还需要脚本需要附加到容器的容器名称或 ID。 进行了一些调整,但这对我来说非常有效......

export svr=$(docker ps --format "table {{.ID}}"| sed 's/CONTAINER ID//g' | sed '/^[[:space:]]*$/d')
docker exec -it $svr bash

需要使用 sed 命令来消除 CONTAINER ID 也被打印出来的事实......但我只需要将实际 ID 存储在 var 中。

答案 9 :(得分:0)

感谢 https://stackoverflow.com/a/65513726/889126 的回答,它让我有了制作完整 bash 脚本的想法

export api_image_id=$(docker inspect --format="{{.Id}}" <image-name> | sed '/^[[:space:]]*$/d')

sudo docker exec -i -t ${api_image_id} /bin/bash

我需要一个特定的容器并编写一个脚本来快速从中提取一些信息。

希望这会对其他人有所帮助。

答案 10 :(得分:0)

您可以使用以下命令打印容器 ID:

docker container ls  | grep 'container-name' | awk '{print $1}'

作为加分点,如果您想使用容器名称登录容器:

docker exec -it $(docker container ls  | grep 'container-name' | awk '{print $1}') /bin/bash

答案 11 :(得分:-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]]