Docker:无法提取已推送到私有注册表的图像

itp*_*tik 7 docker docker-compose

我这样做:

docker pull my-private-repo.xyz.com:443/platform/abc

我收到以下错误:

Pulling repository my-private-repo.xyz.com:443/platform/abc
Error: Status 400 trying to pull repository platform/abc: "{\n  \"errors\" : [ {\n    \"status\" : 400,\n    \"message\" : \"Unsupported docker v1 repository request for 'my-private-repo'\"\n  } ]\n}"
Run Code Online (Sandbox Code Playgroud)

我的docker守护进程配置如下:

{
  "insecure-registries" : [
    "my-private-repo.xyz.com:443"
  ],
  "experimental" : false
}
Run Code Online (Sandbox Code Playgroud)

这是我的码头信息:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 15
Server Version: 1.13.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 22
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.4-moby
Operating System: Alpine Linux v3.5
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.952 GiB
Name: moby
ID: WW55:6DVS:DJCJ:3NXI:2CDX:44JW:F6IK:P2JU:LM7X:B76Y:HC3G:RCEU
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 16
 Goroutines: 27
 System Time: 2017-01-24T21:30:22.279581628Z
 EventsListeners: 1
No Proxy: *.local, 169.254/16
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 my-private-repo.xyz.com:443
 127.0.0.0/8
Live Restore Enabled: false
Run Code Online (Sandbox Code Playgroud)

添加了上面的docker信息.有解决方案吗 指出我可能做错了什么?

docker客户端版本是这样的:

13:39 $ docker --version
Docker version 1.13.0, build 49bf474
Run Code Online (Sandbox Code Playgroud)

更新:

解决.当存储库中不存在图像时,看起来Docker会抛出含糊不清的错误消息.当我这样做时:

docker pull my-private-repo.xyz.com:443/platform/abc
Run Code Online (Sandbox Code Playgroud)

我希望能够下载带有"最新"标签的图片.在存储库中,此标记不存在此类图像.但抛出的错误是错误的.

另外我还改变了我的守护进程配置,如评论中建议的那样:

{
  "experimental" : false,
  "disable-legacy-registry" : true,
  "insecure-registries" : [
    "my-private-repo.xyz.com:443"
  ]
}
Run Code Online (Sandbox Code Playgroud)

而现在我能够拉动图像.

Hao*_*ang 5

当您使用Docker客户端从注册表中提取映像时,客户端将首先尝试向注册表发送V2版本请求。如果此请求返回错误(即映像不存在或请求未经授权),则Docker客户端将回退并尝试发送另一个V1版本请求。

由于您的注册表是较新的版本,并且不再支持V1 API,因此该注册表将在第二次V1请求尝试中抛出诸如“不支持的Docker v1存储库请求”之类的错误。

为了避免这种情况,Docker开发人员计划--disable-legacy-registry默认将选项添加到Docker客户端。如果将此选项设置为true,则Docker客户端将不会尝试再次发送V1版本请求,但会从初始V2请求返回原始错误消息。

有关更多信息,请检查此问题:https : //github.com/docker/docker/issues/26142#issuecomment-271867508