从容器名称中获取docker容器标识

什么是从容器名称得到docker容器id的命令?

在Linux中:

 sudo docker ps -aqf "name=containername" 

或者在OS X中:

 docker ps -aqf "name=containername" 

容器名称是您的容器名称

说明:

  • -q为安静。 只输出ID
  • -a所有。 即使你的容器没有运行,也可以工作
  • -f为filter 。
  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 

如果要基于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]]