docker(代理后面)从azure容器注册表工作拉,但是从registry-1.docker.io,它提供由未知权限错误签名的证书

问题描述 投票:0回答:1

在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),它还行不通。

我也尝试过:

  1. $ curl -k https://registry-1.docker.io/
  2. $ wget https://registry-1.docker.io/ --no-check-certificate

这两个步骤都有效,但是使用docker(运行/拉出节点:6)我仍然得到证书错误。

“$ docker --version”的输出是:“Docker版本18.09.2”

这就是我的〜/ .docker / config.json的样子:

config.json

我希望“docker run node:6”能够成功拉出图像,但实际上却给出了错误

docker proxy ssl-certificate docker-registry azure-container-registry
1个回答
0
投票

对于您的问题,首先,您需要在〜/ .docker / config.json中拥有证书。然后,您无需登录即可从注册表中提取图像。然后您可以在不拉动图像的情况下执行命令。为你,这样的命令:

docker run registry-1.docker.io/node:6

在我这边,config.json会喜欢这样:

enter image description here

我可以像这样执行命令:

enter image description here

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

在我这边有结果的截图。

enter image description here enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.