在ubuntu 18.04 VM中
我在代理后面,我已经使用相同的代理设置了docker配置。
我创建了一个azure容器注册表,当尝试从注册表中停靠时,它可以工作。
但是当试图:
$ docker run node:6
我收到错误:“docker:来自守护程序的错误响应:获取https://registry-1.docker.io/v2/:x509:由未知权限签署的证书。”
我已将注册表添加到/etc/docker/daemon.json:
{
“insecure-registries”:[“registry-1.docker.io”,“myazureContainerRegistry.azurecr.io”]
}
通过执行上述步骤,“$ docker run myazureContainerRegistry.azurecr.io/myimage:tag”可以正常工作,但“$ docker run node:6”仍然会出现证书错误。
我已将“* .docker.io”的证书添加到/etc/docker/certs.d/docker.io以及/ usr / local / share / ca-certificate(sudo apt update-ca-certificates),它还行不通。
我也尝试过:
这两个步骤都有效,但是使用docker(运行/拉出节点:6)我仍然得到证书错误。
“$ docker --version”的输出是:“Docker版本18.09.2”
这就是我的〜/ .docker / config.json的样子:
我希望“docker run node:6”能够成功拉出图像,但实际上却给出了错误
对于您的问题,首先,您需要在〜/ .docker / config.json中拥有证书。然后,您无需登录即可从注册表中提取图像。然后您可以在不拉动图像的情况下执行命令。为你,这样的命令:
docker run registry-1.docker.io/node:6
在我这边,config.json会喜欢这样:
我可以像这样执行命令:
docker hub中的注册表URI是https://index.docker.io/v1/charlesjunqiang。
更新
如果您使用证书文件来验证Docker注册表。然后,您应该执行一些步骤来验证客户端计算机中的Docker注册表。
一:
将证书文件添加到名为/usr/local/share/ca-certificates/docker-dev-cert/
的yourname.crt
目录中。然后执行命令:
sudo update-ca-certificates
sudo service docker restart
Secord:
在/etc/docker/certs.d
目录中创建一个与注册表同名的目录,例如myregistry.azurecr.io。然后在其中添加名为yourname.cert
的证书文件。此外,您应该将文件添加为在创建证书文件时自动创建的.key。
然后,您可以登录注册表并根据需要运行命令docker run registry-1.docker.io/node:6
。
在我这边有结果的截图。