为什么docker登录失败,即使不安全的注册表标志是在地方?

JFrog支持
2023-01-22十一10

对于某些操作系统(例如OpenSuse),如果将docker客户端配置为针对HTTP注册表工作,则可能会出现错误。

虽然-不安全的注册表标志是到位的:

DOCKER_OPTS = " -insecure-registry myregistrydomain.com: 5000 "

https://docs.docker.com/registry/insecure/

这是在“/etc/sysconfig/docker”文件下添加的

在执行“docker login”命令时,您仍然会得到以下错误:

“v2 ping尝试失败,错误:获取https://myregistrydomain.com:5000/v2/: net/http: TLS握手超时。

v1 ping attempt failed with error:获取https://myregistrydomain.com/v1/_ping: net/http: TLS握手超时。如果这个私有注册表只支持带有未知CA证书的HTTP或HTTPS,请在守护进程的参数中添加' -insecure-registry myregistrydomain:5000 '。在HTTPS的情况下,如果您可以访问注册中心的CA证书,则不需要该标志;简单的地方

不安全的注册表标志应该绕过TLS握手验证,但它似乎没有任何效果。

怎么了?

此错误主要是由于某些操作系统上的docker客户端兼容性问题。

docker客户端在初始化期间没有使用不安全的注册表标志。

为了使其生效,它需要编辑'/etc/systemd/system/'下的配置文件,以便docker客户端在init期间使用该标志。

(检查以下内容https://docs.docker.com/engine/admin/configuring/了解更多相关信息)。

使用以下链接https://docs.docker.com/engine/admin/systemd/

以下是OpenSuse操作系统中docker.service.d文件的示例:

(服务)

EnvironmentFile = - / etc / sysconfig /码头工人

ExecStart =

ExecStart=/usr/bin/docker daemon $OPTIONS

DOCKER_STORAGE_OPTIONS美元

DOCKER_NETWORK_OPTIONS美元

BLOCK_REGISTRY美元

INSECURE_REGISTRY美元

DOCKER_OPT美元