绑定在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无法写入它。 A cmod 777
修复了这个问题。使用docker logs
命令检查注册表的日志是至关重要的。
检查日志还显示,restrict-useradd
脚本错误,当它试图添加的用户已经存在,所以添加一个|| 0
到脚本固定的返回值。这也是restrict-groupadd
的问题
注册表日志有说什么吗? – Grimmy
@Grimmy我没有想到要去那里看。日志抱怨说某个目录不存在,我已经启用它,我认为它现在正在工作。作为后续,你会知道如何给守护进程提升权限吗? – bingbomboom
我删除了所有相关的图像和容器,以确保我的成功是可重复的。不幸的是,它似乎没有 - 我遇到了前面描述的相同超时行为 - 预计这次,日志会抱怨(守护进程?)无法运行“mkdir/var/lib/registry/docker” - 这是与以前相同的错误,但目录实际上存在于我的机器上。我有点困惑atm – bingbomboom