从容器名称中获取docker容器标识
什么是从容器名称得到docker容器id的命令?
在Linux中:
sudo docker ps -aqf "name=containername"
或者在OS X中:
docker ps -aqf "name=containername"
容器名称是您的容器名称
说明:
-
-q
为安静。 只输出ID -
-a
所有。 即使你的容器没有运行,也可以工作 -
-f
为filter 。
-
获取正在运行容器的容器ID ::
$docker ps -qf "name=IMAGE_NAME" -f: Filter output based on conditions provided -q: Only display numeric container IDs
-
获取所有容器的容器ID ::
$docker ps -aqf "name=IMAGE_NAME" -a: all containers
如果要基于Container名称获取完整的ContainerId,请使用以下命令
docker ps --no-trunc -aqf name=containername
你可以试试这个:
docker inspect --format="{{.Id}}" container_name
我能想到的最简单的方法是parsingdocker ps
的输出
让我们以交互方式运行最新的Ubuntu镜像并连接到它
docker run -it ubuntu /bin/bash
如果你在另一个terminal上运行docker ps
,你可以看到类似的东西
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8fddbcbb101c ubuntu:latest "/bin/bash" 10 minutes ago Up 10 minutes gloomy_pasteur
不幸的是,parsing这种格式并不容易,因为他们使用空格手动alignment的东西
$ 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]]