从容器名称获取docker容器ID

问题描述 投票:65回答:5

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

docker
5个回答
121
投票

在Linux中:

sudo docker ps -aqf "name=containername"

或者在OS X中:

docker ps -aqf "name=containername"

其中containername是您的容器名称

说明:

  • -q安静。仅输出ID
  • -a为所有人。即使您的容器没有运行也能工作
  • -ffilter

25
投票

你可以试试这个:

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

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


7
投票
  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

2
投票

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

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

-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]]

© www.soinside.com 2019 - 2024. All rights reserved.