我有一个目前正在运行的docker注册表。我有两个不同的虚拟机来托管docker。一个我自己创建并手动安装了docker。另一个是由BOSH制作的。现在,两个虚拟机都可以将映像推送到<IP>:<PORT>
的私有注册表。手动创建的VM能够提取注册表中存在的任何图像。相比之下,BOSH VM只能拉出它所推动的图像。
拉动图像时,我们得到输出
<IP>:<PORT>/test/scratch:1: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
然而,当拉动任何其他图像(我知道存在并且可以拉动)时,我得到如下输出:
docker pull <IP>:<PORT>/<IMAGE_PREFIX>/centos:6
6: Pulling from <IP>:<PORT>/<IMAGE_PREFIX>/centos
f1b10cd84249: Pulling fs layer
b9aeeaeb5e17: Pulling fs layer
f577f0104d9f: Pulling fs layer
25026cb4e110: Pulling fs layer
7935ccc5687c: Pulling fs layer
b65d7f315ddb: Pulling fs layer
0995c5f045e3: Pulling fs layer
8383060ffe2b: Pulling fs layer
4e532e3dd806: Pulling fs layer
13012e69774f: Pulling fs layer
c0720f93f003: Pulling fs layer
1af9b43df076: Pulling fs layer
961ad276c59a: Download complete
Pulling repository <IP>:<PORT>/<IMAGE_PREFIX>/centos
FATA[0000] Error: image <IMAGE_PREFIX>/centos:6 not found
BOSH VM&#34;找不到&#34;没有意义。图像,因为它清楚地看到用于创建我想要的图像的图层。但我不知道这是否是一个奇怪的验证错误。
BOSH VM中ps -ef | grep docker
的输出显示:
docker --daemon --api-enable-cors=false --debug=false --group vcap --graph
/var/vcap/store/docker/docker --host unix:///var/run/docker.sock
--insecure-registry <IP>:<PORT> --bip 192.168.227.1/24 --icc=true --ip-forward=true
--iptables=true --iptables=true --pidfile /var/vcap/sys/run/docker/docker.pid
--selinux-enabled=false --host tcp://127.0.0.1:4243
我手动创建的VM的输出显示:
/usr/bin/docker -d --bip 192.168.227.1/24 --insecure-registry <IP>:<PORT>
答案 0 :(得分:0)
这是我的错误。注册表包含使用docker 1.7.0构建的映像,但是我的BOSH VM安装了docker 1.5.0。因此,BOSH VM无法识别注册表所包含的图像格式(我相信),因此报告了我想要的图像未找到的错误。升级docker二进制文件和spec文件,然后重新部署新版本修复了错误。