绑定在Docker注册表中的位置导致超时

问题描述:

我在Mac上使用Docker,并且在注册表服务器上绑定安装位置时遇到了一些麻烦 - 我希望这里有人能够提供帮助。绑定在Docker注册表中的位置导致超时

谢天谢地,这个问题很简单。假设我想运行一个简单的,不安全的码头注册表。首先,我确保将相应的ip:portno输入到“不安全注册表”列表中。根据文档,我然后运行docker run -d --restart=always --name registry -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -p 5000:5000 registry:2

当我这样做时,注册表“正常工作”。我可以将图片标记为10.0.3.59:5000/imgname,并正常推拉。

但是,我希望注册表中的数据位于主机系统上的特定位置,例如/mnt/registry。我转到docker首选项,确保在mnt文件夹上启用共享,并删除旧映像和容器。

再次重新编写文档,我运行了docker run -d --restart=always --name registry -v storage:/var/lib/registry/ -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -p 5000:5000 registry:2。但是,如果我现在尝试做一个docker push 10.0.3.59:5000/imgname现在,我得到了以下信息

The push refers to a repository [10.0.3.52:5000/cropspokyimage] 
74146a4cf164: Retrying in 9 seconds 
6c45ce1e774e: Retrying in 9 seconds 
0914c5636fb4: Retrying in 9 seconds 
f859b8ada191: Retrying in 9 seconds 
b2d02a400fe3: Retrying in 9 seconds 
fc0e50be166d: Waiting 
a8cfe888247e: Waiting 
e745d991dded: Waiting 
7b08edaa4533: Waiting 
01b4d034aab5: Waiting 
d0c686d0df68: Waiting 
9deb78b26d56: Waiting 
0566c118947e: Waiting 
6f9cf951edf5: Waiting 
182d2a55830d: Waiting 
5a4c2c9a24fc: Preparing 
cb11ba605400: Waiting 

后约一分钟左右的等待,它终于打印以下错误并终止received unexpected HTTP status: 500 Internal Server Error

显然,这叶子我没有一些想要的功能。任何人都可以帮助我找到解决方案吗?

+0

注册表日志有说什么吗? – Grimmy

+0

@Grimmy我没有想到要去那里看。日志抱怨说某个目录不存在,我已经启用它,我认为它现在正在工作。作为后续,你会知道如何给守护进程提升权限吗? – bingbomboom

+0

我删除了所有相关的图像和容器,以确保我的成功是可重复的。不幸的是,它似乎没有 - 我遇到了前面描述的相同超时行为 - 预计这次,日志会抱怨(守护进程?)无法运行“mkdir/var/lib/registry/docker” - 这是与以前相同的错误,但目录实际上存在于我的机器上。我有点困惑atm – bingbomboom

这里有一些问题。首先是我为卷安装的目录具有错误的权限,因此docker无法写入它。 A cmod 777修复了这个问题。使用docker logs命令检查注册表的日志是至关重要的。

检查日志还显示,restrict-useradd脚本错误,当它试图添加的用户已经存在,所以添加一个|| 0到脚本固定的返回值。这也是restrict-groupadd的问题