在搭建 Jenkins 构建镜像上传至本地私有镜像仓库 Registry/Harbor 时,遇到了如下的报错:
http: server gave HTTP response to HTTPS client
出现这问题的原因是:Docker 自从 1.3.X 之后 docker registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交时出现以上错误。
网上的资料大部分是基于 Linux 系统的,而我的环境是 Mac 和 Windows,故做收集汇总。
Linux
在 Linux 系统上,可以通过编辑/etc/docker/daemon.json
文件,在里面加入如下内容:
"insecure-registries":[
"host.docker.internal:5000"
]
然后进行 docker 的重启。
systemctl restart docker
Mac 或 Windows
由于 Mac 和 Windows 上都是安装 DockerDesktop 图形化管理软件,可以通过界面来写配置。
依次从界面进入Preferences/Settings -> Docker Engine
,将私有镜像仓库地址语句填入,保存重启即可。
验证
我们通过docker system info
命令可以查看配置信息insecure-registries
里是否有我们刚才配置的信息。
Insecure Registries:
hubproxy.docker.internal:5000
host.docker.internal:5000
127.0.0.0/8