在搭建 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 dockerMac 或 Windows
由于 Mac 和 Windows 上都是安装 DockerDesktop 图形化管理软件,可以通过界面来写配置。
依次从界面进入Preferences/Settings -> Docker Engine,将私有镜像仓库地址语句填入,保存重启即可。
![[]](https://www.zhangqin.tech/2021/10/25/%E8%BF%90%E7%BB%B4/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87HTTP%E6%96%B9%E5%BC%8F%E8%AE%BF%E9%97%AE%E7%A7%81%E6%9C%89%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93/%E7%A7%81%E6%9C%89%E9%95%9C%E5%83%8F%E4%BB%93%E5%BA%93%E8%AE%BE%E7%BD%AE.png)
验证
我们通过docker system info命令可以查看配置信息insecure-registries里是否有我们刚才配置的信息。
Insecure Registries:
hubproxy.docker.internal:5000
host.docker.internal:5000
127.0.0.0/8