【问题标题】:Check if Docker image exists in cloud repo检查云存储库中是否存在 Docker 映像
【发布时间】:2018-11-28 23:24:39
【问题描述】:

假设我在FROM node:9.2 中有这个图像标签“node:9.2”...

在我实际尝试 docker build ... 之前,是否有一个 API 可以查看带有标签“node:9.2”的图像是否存在并且可以检索?

【问题讨论】:

    标签: docker dockerfile docker-build


    【解决方案1】:

    是的。

    docker image pull node:9.2
    

    【讨论】:

    • hmmm,我不想实际下载图像,只是检查它是否存在,这样做吗?
    • @AlexanderMills 如果图像可用,它将下载图像
    • 是的,在这种情况下,我只是想 ping Docker 集线器服务器/注册表以查看图像是否存在 - 这样如果图像不存在,我可以给用户一个很好的警告,提前而不是让他们等待太久
    • 如果图像存在,但它是私有的并且用户无权访问怎么办?我从 API pov 怀疑它就像图像不存在一样。
    • 有这样的命令不需要授权吗?为了让它工作,我首先必须运行docker login -u <username> -p <password> ...
    【解决方案2】:

    此脚本仅在图像不存在时构建。

    V2 更新

    function docker_tag_exists() {
        curl --silent -f -lSL https://hub.docker.com/v2/repositories/$1/tags/$2 > /dev/null 
    }
    

    将上述函数用于 v2

    #!/bin/bash
    function docker_tag_exists() {
        curl --silent -f -lSL https://index.docker.io/v1/repositories/$1/tags/$2 > /dev/null 
    
    }
    
    if docker_tag_exists library/node 9.11.2-jessie; then
        echo "Docker image exist,...."
        echo "pulling existing docker..."
        #so docker image exist pull the docker image
        docker pull node:9.11.2-jessie
    else 
        echo "Docker image not exist remotly...."
        echo "Building docker image..."
        #build docker image here with absoult or retlative path
        docker build -t nodejs .
    
    fi
    

    对下面的链接稍作修改。 如果注册表是私有的,请检查此链接With username and password

    【讨论】:

    • 谢谢!你有使用 Docker 注册表 v2 的示例吗?
    • 很酷,谢谢,这工作:curl --silent -f -lSL https://hub.docker.com/v2/repositories/library/node/tags
    • 所以我猜https://hub.docker.com/v2 不需要身份验证,但https://registry-1.docker.com/v2 确实需要身份验证?
    • 仅当您从私人仓库中提取时才需要身份验证,而不是在这种情况下
    • 如果在检查过程中出现网络故障,这是否会导致误报?
    【解决方案3】:

    如果你为 Docker 守护进程设置了"experimental": enabled,那么你可以使用这个命令:

    docker manifest 检查节点:9.2

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多