Docker 注册表上的绑定挂载位置导致超时

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/imgnamenow,则会收到以下消息

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

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

答案1

结果是权限错误,docker 没有写入已挂载目录的权限(请执行chmod 777修复)。

docker log命令是一个值得信赖的朋友,帮助我(好吧,我的主管)追踪错误的根源

相关内容