0

首先,我是 IBM Cloud 世界的新手。

我遵循一些准则将映像推送到 IBM Cloud Container Registry。但是我在登录 Container Registry 时遇到问题。

我正在使用的命令是:

ibmcloud cr login

回应是:

登录到“registry.ng.bluemix.net”...

登录到“registry.ng.bluemix.net”。

登录到“us.icr.io”...

失败的

无法“docker login”到“us.icr.io”并出现错误:警告!通过 CLI 使用 --password 是不安全的。使用 --password-stdin。

来自守护进程的错误响应:获取https://us.icr.io/v2/:x509:证书由未知机构签名

查看错误certificate signed by unknown authority似乎我docker需要一些证书来连接us.icr.io

我的 Docker 版本是2.2.0.3

4

3 回答 3

1

正如此处的故障排除文档中所述。

你能更新容器注册表插件吗?使用以下命令

ibmcloud plugin update container-registry

此外,请确保 Docker 守护程序正在使用以下命令运行

docker ps

您无法登录到 IBM Cloud Container Registry。

发生了什么 ibmcloud cr login 命令失败。

为什么会发生以下替代方法是可能的原因:

container-registry CLI 插件已过期,需要更新。Docker 未安装在您的本地计算机上,或未运行。您的 IBM Cloud 登录凭证已过期。如何修复它

您可以通过以下方式解决此问题:

升级到最新版本的 container-registry CLI 插件,请参阅更新 container-registry CLI 插件。确保 Docker 已安装在您的计算机上。如果已安装,请重新启动 Docker 守护程序。重新运行 ibmcloud login 命令以刷新您的 IBM Cloud 登录凭证。

更新

有很多方法可以解决证书问题

  1. 按照此处提到的说明创建客户端证书,
openssl genrsa -out client.key 4096
openssl req -new -x509 -text -key client.key -out client.cert
  1. 按照此处的说明添加您的客户端证书。替换<MyRegistry>:<Port>us.icr.io
  2. 对于服务器端证书,请查看此链接ca.crt
于 2020-03-11T17:22:25.113 回答
1

您是否尝试过对 us.icr.io 运行 dig 以检查您是否前往正确的主机?

此页面显示 us.icr.io 的所有子网https://cloud.ibm.com/docs/containers?topic=containers-firewall#firewall_outbound 它们是:169.61.234.224/29 169.61.135.160/29 169.61.46.80 /29

如果您不打算使用其中之一,您是否有某种代理会干扰 DNS 解析?

于 2020-03-12T10:58:33.953 回答
0

我认为我需要使用特定于区域的端点而犯了同样的错误。经过一番挖掘,情况并非如此,除非您出于特定原因需要特定区域的 url。

正如我从ibm 注册区域文档中引用的:

IBM Cloud Container Registry 的默认实例是全局注册表。全球注册机构在其域名 (icr.io) 中不包含区域。

结论:替换us.icr.ioicr.io


更新:

确保您首先登录到 ibmcloud:

ibmcloud login --apikey replace_me_with_IAM_apikey --no-region

做第二个:

ibmcloud cr login
于 2022-01-05T15:10:22.937 回答