【问题标题】:How to get Image ID of docker in jenkins?如何在 jenkins 中获取 docker 的图像 ID?
【发布时间】:2015-07-07 08:18:16
【问题描述】:

我需要通过 Jenkins 运行 docker 容器。 为此,我使用“Start/Stop Docker Containers”作为构建步骤

启动/停止 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的Image ID?

【问题讨论】:

  • 不就是像ubuntu:latest这样的图片名吗?
  • 不。实际上我使用 docker.repositry(local) 创建了一个图像(在执行 jenknis 作业时创建)。现在我需要检索该图像 ID。那么如何检索它呢?
  • 这个问题你解决了吗?从这个问题看来,您可能对容器和图像之间的区别感到困惑。

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


【解决方案1】:

一个基于docker documentation的班轮:

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

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

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

然后用$IMAGE_ID访问它

【讨论】:

  • 别忘了在最后加上括号:IMAGE_ID=$(docker images --filter=reference=image_name --format "{{.ID}}")
  • 感谢@Tabaraei 的提醒,我已解决。
【解决方案2】:

更简单的解决方法:

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

这个命令的含义:

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

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

【讨论】:

  • --这里也需要no-trunc
【解决方案3】:

您可以使用以下命令查看 docker 镜像 ID(对于您从 docker hub 构建或拉取的镜像):docker images

在 OP 的 cmets 之后更新:

docker images --filter 只实现 dangling=true 所以你不能使用这种方式搜索容器 id。所以你必须依赖 shell 脚本,这里有一个例子:

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

您需要调整 grep 中的正则表达式以匹配您的图像名称和标签。

【讨论】:

  • 是的。我就是这样做的。但它是静态的。(每次我需要更改 id,如果图像的内容被修改)。我需要一个动态 id(某种变量)所以它将自动从存储库中获取更新的图像 ID。
  • docker images --filter 现在支持通过引用搜索 $ docker images --filter=reference='busy*:*libc' 以及 format 以选择输出格式参见the documentation
【解决方案4】:
docker ps -a --format "{{.ID}}" | head -1

占位符

.ID

.存储库

.标签

.摘要

.CreatedSince

.CreatedAt

.尺寸

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多