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

显然,这让我没有一些非常想要的功能。有人能帮我找到解决方案吗?

这里有一些问题。首先是我为卷挂载的目录具有错误的权限,因此 docker 无法写入它。一个cmod 777解决了这个问题。

使用docker logs命令检查注册表的日志至关重要。

检查日志还发现,当restrict-useradd脚本尝试添加的用户已经存在时,它出错了,因此在脚本中的返回值中添加|| 0可以解决此问题。这也是restrict-groupadd的问题

相关内容

  • 没有找到相关文章

最新更新