检查云repo中是否存在Docker映像
假设我有这个图像标签“node:9.2”,如node:9.2中的检查云repo中是否存在Docker映像,docker,dockerfile,docker-build,Docker,Dockerfile,Docker Build,假设我有这个图像标签“node:9.2”,如node:9.2中的 在我实际尝试docker build…之前,是否有一个API可以点击查看带有标记“node:9.2”的图像是否存在并可以检索?是 docker image pull node:9.2 仅当图像不存在时,才会生成此脚本 V2的更新 function docker_tag_exists() { curl --silent -f -lSL https://hub.docker.com/v2/repositories/$1/ta
在我实际尝试docker build…
之前,是否有一个API可以点击查看带有标记“node:9.2”的图像是否存在并可以检索?是
docker image pull node:9.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
只需从下面的链接进行少量修改。
如果注册表是私有的,请检查此链接如果已为Docker守护程序设置了“实验”:已启用
,则可以使用以下命令:
docker清单检查节点:9.2
嗯,我不想实际下载该图像,只需检查它是否存在,这样可以吗?@AlexanderMills如果该图像可用,它将下载该图像。是的,在这种情况下,我只是想ping Docker hub服务器/注册表以查看该图像是否存在-这样,如果该图像不存在,我可以给用户一个很好的警告,事先不要让他们等待太久,如果图像存在,但它是私有的,用户没有访问权限,怎么办?我怀疑从API pov来看,这与图像不存在是一样的。有这样的命令不需要auth吗?为了让它工作,我首先必须运行
docker login-u-p
…谢谢!你有使用Docker注册表v2的例子吗?很酷,谢谢,这很有效:curl--silent-f-lSLhttps://hub.docker.com/v2/repositories/library/node/tags
所以我猜https://hub.docker.com/v2
不需要身份验证,但是https://registry-1.docker.com/v2
是否需要身份验证?仅当您从私人回购中提取时才需要身份验证。在这种情况下,如果在检查过程中出现网络故障,这是否会给出假阴性?