我们将 docker 镜像存储在 gitlab 容器注册表中。这些图像具有诸如 imagename-datetimestamp 之类的标签。因此,如果图像 A 是在 5/21/21 上午 8 点构建的,则上传的名称为 imagenameA-0521210800。下午 12 点构建的下一个上传为 imagenameA-0521211200。有没有API或命令可以帮助我随时获取最后上传的图像?在本例中,“imagenameA-0521211200”是最后上传的。
注意:我不想使用“最新”标签。
谢谢
我一直在尝试拉一个docker镜像:container-registry.oracle.com/database/enterprise:12.2.0.1
但我收到以下错误::
来自守护程序的错误响应:container-registry.oracle.com/database/enterprise的拉式访问被拒绝,存储库不存在或可能需要“ docker登录”
我什至尝试登录到oracle存储库。但是结果没有什么不同。
root@Linux-Vostro-3250:~# docker pull container-registry.oracle.com/database/enterprise:12.2.0.1
Error response from daemon: pull access denied for container-registry.oracle.com/database/enterprise, repository does not exist or may require 'docker login'
root@Linux-Vostro-3250:~#
root@Linux-Vostro-3250:~# docker login container-registry.oracle.com
Username (amal.v@ctebs.com): amal.v@ctebs.com
Password:
Login Succeeded
root@Linux-Vostro-3250:~# docker pull container-registry.oracle.com/database/enterprise:12.2.0.1
Error response from daemon: pull access denied for container-registry.oracle.com/database/enterprise, repository does not exist or may require 'docker login'
root@Linux-Vostro-3250:~#
Run Code Online (Sandbox Code Playgroud)
我还尝试通过登录从docker存储中提取相同的图像。
希望得到解释。。谢谢您的时间!
我知道这可以通过来完成dockerhub。我想知道是否有类似的东西可用于gitlab注册表。
用例是,我编写了一个架构脚本,以将部署还原为用户提供的特定标签。在实际提取图像之前,我想知道注册表中是否存在具有指定标签的图像,并相应地警告用户。
我已经搜索了他们的文档,但找不到任何东西。
注意:这里的用户是部署代码的人。
据我了解,GitHub 提供了两种存储容器镜像的选项:ContainerRegistry 和 Packages,但我认为区别并不明显。他们在博客文章中表示, “借助 GitHub Actions,发布到 GitHub Container Registry 变得很容易。” 但给定的示例将映像推送到 Packages,而不是 Container Registry。
那么,这两个平台可以互换使用吗?其中一个平台是否比另一个平台更有优势?
当我们的容器注册表和整个 K8S 集群都断电时,我们发生了一次严重的中断。当集群恢复速度快于容器注册表时,我的 pod(有状态集的一部分)陷入困境 Error: ImagePullBackOff。
是否有配置设置可以定期重试从 CR 下载映像或在无需手动干预的情况下恢复?
我查看了imagePullPolicy,但这不适用于 CR 不可用的情况。
我目前正在使用以下命令来构建带有标签的图像:
buildctl build \
--frontend dockerfile.v0 --opt filename=${DOCKER_FILE} --local dockerfile=${DOCKER_ROOT} \
${BUILD_ARGS} --local context=${DOCKER_ROOT} \
--import-cache type=registry,ref=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME} \
--output type=image,name="${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG}",push=true
Run Code Online (Sandbox Code Playgroud)
我想向同一张图像添加新标签。我已经尝试过 Buildctl 命令中建议的方法来标记多个图像,但失败了。
buildctl build \
--frontend dockerfile.v0 --opt filename=${DOCKER_FILE} --local dockerfile=${DOCKER_ROOT} \
${BUILD_ARGS} --local context=${DOCKER_ROOT} \
--import-cache type=registry,ref=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME} \
--output type=image,name="${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG},${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:latest",push=true
Run Code Online (Sandbox Code Playgroud)
error: invalid value acme.com/namespace/image-name:latest
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下方法,但它只创建带有latest标签的图像,而不是两者
error: invalid value acme.com/namespace/image-name:latest
Run Code Online (Sandbox Code Playgroud)
我想要的是:
IMAGE_TAG和的值latest有谁知道该怎么做?
docker ×4
gitlab ×2
docker-image ×1
github ×1
gitlab-ci ×1
ibm-cloud ×1
kubernetes ×1
oracle ×1