为什么docker登录失败,即使不安全注册表标志到位?

JFrog支持
2017-02-06 13:23

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

尽管-insecure-registry标记已经就位:

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

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

在'/etc/sysconfig/docker'文件下添加了什么

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

"v2 ping attempt failed with error: Get https://myregistrydomain.com:5000/v2/: net/http: TLS handshake timeout .

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

-insecure-registry标志应该绕过TLS握手验证,但它似乎没有任何作用。

怎么了?

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

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

为了使它生效,它需要编辑'/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美元