我无法将图像推送到私人注册表并获取:
在存储库中找不到最新标签
我正在使用Docker提供的默认注册表容器:
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry latest 7e2db37c6564 8 days ago 411.6 MB
janos/wheezy latest 900e813f1fd9 11 months ago 218.6 MB
作为测试,假设我想有一个本地版本的喘息声:
# docker tag janos/wheezy staging-docker.mysite.nl/myself/wheezy
# docker push staging-docker.mysite.nl/myself/wheezy
The push refers to a repository [staging-docker.mysite.nl/myself/wheezy] (len: 1)
Sending image list
Pushing repository staging-docker.mysite.nl/myself/wheezy (1 tags)
7af801e4faa1: Pushing [==================================================>] 226.3 MB/226.3 MB
2014/11/21 16:06:38
图像似乎就在那里:
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry latest 7e2db37c6564 8 days ago 411.6 MB
staging-docker.mysite.nl/myself/wheezy latest 900e813f1fd9 11 months ago 218.6 MB
janos/wheezy latest 900e813f1fd9 11 months ago 218.6 MB
在当地我可以开始:
# docker run -i -t staging-docker.mysite.nl/myself/wheezy /bin/bash
root@6b5fafe61d88:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr var
root@6b5fafe61d88:/# exit
但当试图运行或从另一台服务器上拉取它时,我会得到“Tag latest not found”
# docker pull staging-docker.mysite.nl/myself/wheezy
Pulling repository staging-docker.mysite.nl/myself/wheezy
2014/11/21 16:08:15 Tag latest not found in repository staging-docker.mysite.nl/myself/wheezy
显式添加“最新”没有帮助。同样的错误。
我可以看到调用到达注册表,所以我不会无意中使用另一个:
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/_ping HTTP/1.0" 200 1439 "-" "Go 1.1 package http"
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/_ping HTTP/1.0" 200 1439 "-" "Go 1.1 package http"
21/Nov/2014:15:08:15 +0000 DEBUG: args = {'namespace': u'myself', 'repository': u'wheezy'}
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/repositories/myself/wheezy/images HTTP/1.0" 200 164 "-" "docker/1.3.1 go/go1.3.3 git-commit/4e9bbfa kernel/3.16.0-0.bpo.2-amd64 os/linux arch/amd64"
21/Nov/2014:15:08:15 +0000 DEBUG: args = {'namespace': u'myself', 'repository': u'wheezy'}
21/Nov/2014:15:08:15 +0000 DEBUG: [get_tags] namespace=myself; repository=wheezy
172.17.42.1 - - [21/Nov/2014:15:08:15 +0000] "GET /v1/repositories/myself/wheezy/tags HTTP/1.0" 200 2 "-" "docker/1.3.1 go/go1.3.3 git-commit/4e9bbfa kernel/3.16.0-0.bpo.2-amd64 os/linux arch/amd64"
并且手动检查图像的标签时,它们确实是空的:
# curl -k https://staging-docker.mysite.nl/v1/repositories/myself/wheezy/tags
{}
问题1:既然Docker总是使用最新的。。。
问题2:如果事情搞砸了,最新的标签确实不见了,为什么我还能在本地启动它?
Docker上的两个版本都相同:
# docker version
Client version: 1.3.1
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 4e9bbfa
OS/Arch (client): linux/amd64
Server version: 1.3.1
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 4e9bbfa
问题1:
这应该是您的远程私人注册表中的问题,这已由您的命令确认
curl -k https://staging-docker.mysite.nl/v1/repositories/myself/wheezy/tags
问题二
tag只是docker镜像的别名,如果你在本地以不同的命名运行,它们都是从同一个docker镜像运行的,没有区别。
标签latest
不会在本地丢失,这是由您的命令确认的
$ docker images
解决方案
检查docker private registry设置并跟踪日志以查看问题所在,如果要彻底解决问题,需要在远程private registry中附加更多调试信息。
以及远程注册表设置的版本和平台。
我注意到Docker客户端失败消息并不总是反映根本原因。我见过当docker客户端未与服务器进行身份验证时发生这种情况,或者当SSL握手因某种原因失败时也会发生这种情况。鉴于您没有使用--insecure-注册表,听起来像是后者。
我正在尝试将一个图像推送到我的docker私有存储库: Docker告诉我: push引用存储库[living-registry.com:5000/busybox]Get https://living-registry.com:5000/v1/_ping:read tcp 195.83.122.16:39714->195.83.122.16:5000:read:对等体重置连接 这些命令正在Core
我现在收到的每一条消息都会出现以下错误: 1437425804:未注册标识符为“未找到默认值”的图标 仅当后端用户登录时,才会发生此错误。对于刚刚访问网站(没有后端用户登录会话)的用户来说,网站工作正常。 我不知道有一个带有标识符的图标,也不知道从哪里开始调试。扩展扫描仪看起来不错。有人给我一个提示吗? 编辑 这是错误的回溯: Fri,19 Mar2021 12:28:52 0100[关键]请求=
我在用户X和存储库名称Y下有一个私有存储库: https://github.com/X/Y 这是一个用Gradle构建的Java项目。 Gradle配置文件已按照官方Github软件包注册表文档中的说明进行配置,我能够成功发布我的软件包: https://help.github.com/en/articles/configuring-gradle-for-use-with-github-packa
问题内容: 我创建了两个Docker容器。第一个提供专用的Docker注册表,第二个提供官方Docker注册表的镜像: 现在,我想将两者结合起来。每当用户 提取 图像时,都应首先查询私有注册表,然后查询镜像。当图像被 推送时, 它们仅应被推送到私有注册表。 我不知道如何做到这一点。任何帮助表示赞赏。 问题答案: 您不能仅仅强制所有 docker push 命令推送到您的私有注册表。原因之一是您可以
我正在尝试设置一个私有docker注册表,由一个反向nginx代理保护,该代理通过客户端证书验证用户。 我得到的错误是: x509:由未知机构签署的证书 根据文档,您应该能够将证书添加到/etc/docker/certs中。我已经这么做了。Docker似乎看到了证书的位置: EBU[0015]呼叫POST/v1。24/图像/创建?fromImage=docker。矮人。组织/名册 我还尝试从myd
我可以在Resources->Registrys中定义azure注册表凭据并对其进行身份验证以创建工作负载。(工作负载访问私有azure注册表,并使用凭据集对其进行身份验证) 现在,如果我创建一个Helm图表,访问同一个私有Azure注册表来提取映像并创建一个pod,它会失败,表示无法提取docker映像。我对此进行了研究,发现K8s部署可以找到Rancher UI中设置的凭据,但kublet没有