• 已删除用户
Administrator
发布于 2021-10-25 / 4 阅读
0

如何通过HTTP方式访问私有Docker镜像仓库

在搭建 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