![Docker 注册表上的绑定挂载位置导致超时](https://linux22.com/image/1536702/Docker%20%E6%B3%A8%E5%86%8C%E8%A1%A8%E4%B8%8A%E7%9A%84%E7%BB%91%E5%AE%9A%E6%8C%82%E8%BD%BD%E4%BD%8D%E7%BD%AE%E5%AF%BC%E8%87%B4%E8%B6%85%E6%97%B6.png)
我在 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
now,则会收到以下消息
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
命令是一个值得信赖的朋友,帮助我(好吧,我的主管)追踪错误的根源