Harbor 使用 http 报错

新搭的Harbor,还没来得及配置证书(或者不打算用https),那么当你使用docker login的时候,应该会出现下面的错误

ERROR: Get https://192.168.1.111:81/v2/: http: server gave HTTP response to HTTPS client

根本原因是,内部默认HTTPS,而我们又没有开启HTTPS。
解决方法很简单:

1.查看docker.service位置
[root@localhost docker]# systemctl status docker|grep docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   CGroup: /system.slice/docker.service
[root@localhost docker]#
2.然后编辑 /usr/lib/systemd/system/docker.service
在ExecStart的后面添加参数 --insecure-registry=192.168.1.111:81 (Harbor地址)
最后重新加载service文件并重启docker服务 systemctl daemon-reload && systemctl restart docker

重新进行 docker login 测试,即可通过。

[root@localhost docker]# echo Harbor12345 | docker login -u admin --password-stdin 192.168.1.163:81
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

如果你的harbor是纯内部使用,根据自己实际情况决定用不用https。但是如果是对外的,强烈开启https把证书配置上。


避免HTTPS错误的方法也可以通过修改文件处理,如下:

vi /etc/docker/daemon.json
# 内容如下
{
    "insecure-registries":["harbor.goodcol.com:81"]
}
# 加载和重启服务
systemctl daemon-reload
systemctl restart docker

(END)

你可能感兴趣的:(Docker)