Error response from daemon: Get “https://registry:5000/v2/“: http: server gave HTTP response to HTTP

[root@localhost] docker pull registry:5000/nginx
Using default tag: latest
Error response from daemon: Get "https://registry:5000/v2/": http: server gave HTTP response to HTTPS client

这个错误信息表示 Docker 客户端尝试通过 HTTPS 访问镜像仓库,但该仓库仅支持 HTTP 协议,而 Docker 默认使用 HTTPS 来连接仓库,因此导致了协议不匹配的问题。

错误信息的关键部分是:

Error response from daemon: Get "https://registry:5000/v2/": http: server gave HTTP response to HTTPS client
这说明 Docker 客户端试图通过 HTTPS 连接 registry:5000,但仓库只支持 HTTP 协议,因此返回了错误的响应。

解决方法:

1. 配置 Docker 允许 HTTP 协议

要解决这个问题,你需要告诉 Docker 允许连接到使用 HTTP 协议的本地仓库。编辑 Docker 配置文件(/etc/docker/daemon.json),并添加以下内容:

{
  "insecure-registries": ["registry:5000"]
}

这样,Docker 就会允许连接到这个仓库地址这个不使用 HTTPS 的镜像仓库。

注意:这个地址registry已经在hosts中配置了域名解析,配置文件
cat /etc/hosts,增加以下内容
镜像仓库IP地址 registry

2. 重启 Docker 服务

配置完后,需要重启 Docker 服务,使配置生效:

systemctl restart docker

3. 重新拉取镜像

经过上面的配置后就可以重新拉取镜像了。

你可能感兴趣的:(Docker,docker)