【发布时间】:2018-11-28 23:24:39
【问题描述】:
假设我在FROM node:9.2 中有这个图像标签“node:9.2”...
在我实际尝试 docker build ... 之前,是否有一个 API 可以查看带有标签“node:9.2”的图像是否存在并且可以检索?
【问题讨论】:
标签: docker dockerfile docker-build
假设我在FROM node:9.2 中有这个图像标签“node:9.2”...
在我实际尝试 docker build ... 之前,是否有一个 API 可以查看带有标签“node:9.2”的图像是否存在并且可以检索?
【问题讨论】:
标签: docker dockerfile docker-build
是的。
docker image pull node:9.2
【讨论】:
docker login -u <username> -p <password> ...
此脚本仅在图像不存在时构建。
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
【讨论】:
curl --silent -f -lSL https://hub.docker.com/v2/repositories/library/node/tags
https://hub.docker.com/v2 不需要身份验证,但https://registry-1.docker.com/v2 确实需要身份验证?
如果你为 Docker 守护进程设置了"experimental": enabled,那么你可以使用这个命令:
docker manifest 检查节点:9.2
【讨论】: