为什么docker登录失败,即使不安全的注册表标志是在地方?
对于某些操作系统(例如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美元
