docker push 到私有注册表挂起

Kei*_*ock 5 docker docker-registry

我已经设置,repl 提供的 docker-registry 和来自 docker hub 的官方 docker 注册表镜像都有我看到的相同问题。

我有一个图像,我用 docker 注册表主机名和端口等标记了它,并尝试将它推送到注册表。

按回车键后,它似乎运行正常,检查注册表已有的图像层。一旦它开始推送一个它没有的图像层,它就会挂起;并一直呆在那里,直到我按 ctrl+c 离开它

例子:

[root@docker1 ~]# docker push docker1:5000/centos:7
The push refers to a repository [docker1:5000/centos] (len: 1)
Sending image list
Pushing repository docker1:5000/centos (1 tags)
Image 511136ea3c5a already pushed, skipping
Image 5b12ef8fd570 already pushed, skipping
5c5681003a50: Pushing [>                                                  ] 1.584 MB/220.5 MB 2m9s
Run Code Online (Sandbox Code Playgroud)

在正在运行的 docker-registry 容器的 docker 日志中,它有:

10.10.10.2 - - [06/Apr/2015:17:11:01 +0000] "PUT /v1/images/f6808a3e4d9e80a655ec625e38b869ed8a614611e4d0073aeff23be841c9fcff/json HTTP/1.1" 200 4 "-" "docker/1.1.1 go/go1.2.1 git-commit/bd609d2 kernel/3.15.3-tinycore64 os/linux arch/amd64"
06/Apr/2015:17:11:02 +0000 DEBUG: args = {'image_id': u'f6808a3e4d9e80a655ec625e38b869ed8a614611e4d0073aeff23be841c9fcff'}
Run Code Online (Sandbox Code Playgroud)

就我所见,没有错误。

我尝试从远程服务器上和本地推送到自身,但仍然相同。iptables 已关闭,selinux 也是如此。

不太确定还有什么要尝试的。

问候, K

Kei*_*ock 0

我确实在测试中发现,如果我推送到本地主机,它会正常工作,但通过主界面则会失败。再次没有 IPTables 等运行。

我通过拉取 nginx 映像并将其上的 proxy_pass 运行到注册表来解决了这个问题。

我确实必须设置

client_max_body_size 0;

就像最初收到 411 Length required' 错误一样。

这是一个令人愉快的解决方法,因为无论如何我最终都想将 htaccess 放在它前面,所以这就是生活。

K