docker(在代理后面)从azure容器注册表中拉出,但从注册表-1.docker.io中,它给出了由未知权限签名的证书错误
在ubuntu 18.04虚拟机中 我在一个代理后面,我已经用同一个代理设置了docker配置 我创建了一个azure容器注册表,当尝试从注册表中提取docker时,它可以工作 但在尝试: $docker运行节点:6 我得到一个错误: “docker:来自守护进程的错误响应:Get:x509:未知授权机构签署的证书。” 我已将注册表添加到/etc/docker/daemon.json: { “不安全的注册表”:[“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(在代理后面)从azure容器注册表中拉出,但从注册表-1.docker.io中,它给出了由未知权限签名的证书错误,docker,proxy,ssl-certificate,docker-registry,azure-container-registry,Docker,Proxy,Ssl Certificate,Docker Registry,Azure Container Registry,在ubuntu 18.04虚拟机中 我在一个代理后面,我已经用同一个代理设置了docker配置 我创建了一个azure容器注册表,当尝试从注册表中提取docker时,它可以工作 但在尝试: $docker运行节点:6 我得到一个错误: “docker:来自守护进程的错误响应:Get:x509:未知授权机构签署的证书。” 我已将注册表添加到/etc/docker/daemon.json: { “不安全的注册表”:[“registry-1.docker.io”,“myazureContainerRe
我希望“docker run node:6”能够成功地提取映像,但实际上它会为您的问题提供错误信息,首先,您需要在~/.docker/config.json中拥有证书。然后,您可以从注册表中提取图像,而无需登录。然后,您可以执行该命令,而无需在之前拖动图像。对于您,命令如下所示:
docker run registry-1.docker.io/node:6
在我这边,config.json如下所示:
docker run registry-1.docker.io/node:6
我可以这样执行命令:
docker run registry-1.docker.io/node:6
docker中心中注册表的URI为
更新
如果使用证书文件对Docker注册表进行身份验证。然后,您应该执行一些步骤来验证客户端计算机中的Docker注册表
One:
在目录/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
我这边有结果的截图
对于您的问题,首先,您需要在~/.docker/config.json中拥有证书。然后,您可以从注册表中提取图像,而无需登录。然后,您可以执行该命令,而无需在之前拖动图像。对于您,命令如下所示:
docker run registry-1.docker.io/node:6
在我这边,config.json如下所示:
docker run registry-1.docker.io/node:6
我可以这样执行命令:
docker run registry-1.docker.io/node:6
docker中心中注册表的URI为
更新
如果使用证书文件对Docker注册表进行身份验证。然后,您应该执行一些步骤来验证客户端计算机中的Docker注册表
One:
在目录/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
我这边有结果的截图
您需要使用注册表服务器名称或URI运行映像。例如,使用命令
docker run registry-1.docker.io/node:6
。但首先,您应该已经有了证书。@CharlesXu我尝试了您提到的命令,但仍然出现了相同的证书错误。这意味着您在~/.docker/config.json文件中没有证书。您需要使用注册表服务器名称或URI运行映像。例如,使用命令docker run registry-1.docker.io/node:6
。但是首先,你应该已经有了证书。@CharlesXu我试过你提到的命令,但是它仍然给出了相同的证书错误。这意味着您在~/.docker/config.json文件中没有证书。您能帮助我如何在文件中获得证书吗path@SaumyaGoyal您可以在config.json文件中手动添加证书。或者您可以登录注册表服务器一次,它会自动将证书添加到config.json中。我从chrome导出了“*.docker.io”的证书,并将其添加到config.json中,但仍然得到了相同的证书issue@SaumyaGoyal我更新答案。请看一看,然后再试一次。您能帮助我从哪里获取您在config.json中拥有的那些“auth”值吗?您能帮助我了解如何在中获取证书吗path@SaumyaGoyal您可以在config.json文件中手动添加证书。或者您可以登录注册表服务器一次,它会自动将证书添加到config.json中。我从chrome导出了“*.docker.io”的证书,并将其添加到config.json中,但仍然得到了相同的证书issue@SaumyaGoyal我更新答案。看一看,再试一次。你能帮我吗