从容器名称获取docker容器ID的命令是什么?
在Linux中:
sudo docker ps -aqf "name=containername"
或者在OS X中:
docker ps -aqf "name=containername"
其中containername
是您的容器名称
说明:
-q
安静。仅输出ID-a
为所有人。即使您的容器没有运行也能工作-f
为filter。你可以试试这个:
docker inspect --format="{{.Id}}" container_name
这种方法与操作系统无关。
$docker ps -qf "name=IMAGE_NAME"
-f: Filter output based on conditions provided
-q: Only display numeric container IDs
$docker ps -aqf "name=IMAGE_NAME"
-a: all containers
如果要基于Container名称获取完整的ContainerId,请使用以下命令
docker ps --no-trunc -aqf name=containername
我能想到的最简单的方法是解析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]]