如何获得jenkins中docker的图像ID?

时间:2015-07-07 08:18:17

标签: jenkins docker jenkins-plugins dockerfile docker-compose

我需要通过Jenkins运行docker容器。 为此,我使用了" 启动/停止Docker容器"作为构建步骤

启动/停止Docker容器

Action to choose        : Run container
Docker Cloud name       : docker_demo
ID                      : DOCKER_IMAGE_ID
DNS     
Port bindings           :port
Bind all declared ports :   
Hostname                : ip address

在运行作业时,它告诉" ID无效"。 任何人都可以建议,如何在jenkins中获取docker的图像ID?

4 个答案:

答案 0 :(得分:1)

您可以使用以下命令查看docker image id(对于您从docker hub构建或提取的图像):docker images

OP发表评论后更新:

docker images --filter仅实现dangling = true,因此您无法使用这种方式搜索容器ID。所以你必须依赖shell脚本,这是一个例子:

docker images | grep -E '^golang.*latest' | awk -e '{print $3}' 

您需要在grep中定制正则表达式以匹配您的图像名称和标记。

答案 1 :(得分:1)

一个基于docker documentation的班轮:

sudo docker images --filter=reference=image_name --format "{{.ID}}"

用您的实际docker映像名称替换image_name。 您可以将该值存储在shell变量中,以进一步引用:

IMAGE_ID=$(sudo docker images --filter=reference=image_name --format "{{.ID}}"

然后使用$IMAGE_ID

进行访问

答案 2 :(得分:1)

一种更简单的解决方法:

docker images --filter="reference=your_image_name" --quiet

此命令的含义:

  • -filter:根据名称搜索图像(由 your_image_name 表示)
  • -quiet:仅返回图像ID

参考:https://docs.docker.com/engine/reference/commandline/images/

答案 3 :(得分:0)

docker ps -a --format "{{.ID}}" | head -1

占位符

.ID

。存储库

.Tag

。摘要

.CreatedSince

.CreatedAt

。大小