docker 配置harbor 非https访问(http server give HTTP response to HTTPS client)

问题

  • 本地部署了harbor镜像服务器
  • docker和docker-compose 获取该harbor镜像服务器上的镜像时报错

报错信息 http server give HTTP response to HTTPS client

报错信息说得很明白,就是docker期望访问一个https服务器,但是服务器是HTTP的。

  • 尝试命令行登录也报同样的错误

docker login -u admin harbor:31120

解决方案

方案1

网上好多教程也都有解决方案。

修改daemon.json 配置文件

bash 复制代码
vim /etc/docker/daemon.json

增加配置

js 复制代码
{ 
// ... 
"insecure-registries" : ["harbor:31120"] 
// ... 
}

重启docker 服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

然后发现不起作用。

使用docker info 命令,看不到刚才的配置harbor信息

解决方法2

配置systemd服务启动文件

bash 复制代码
[0 root@vps harbor]# cat /usr/lib/systemd/system/docker.service

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service containerd.service

Wants=network-online.target

Requires=docker.socket containerd.service

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry harbor:31120

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

然后重启服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

发现docker启动不了,报错。那只好恢复/usr/lib/systemd/system/docker.service 配置文件。

最终解决方案

我发现恢复/usr/lib/systemd/system/docker.service 之后,执行

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

还是会报错。

按理说恢复了之前的状态,应该不会报错。我查看了日志,systemctl status docker 显示操作太频繁。

那我灵光一闪,我是不是先把docker 关闭,然后再启动呢?

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl stop docker

# 等几秒
sudo systemctl start docker

docker服务启动成功,再测试一下登录,发现成功了。

总结

daemon.json 配置这个解决方法是对的,但是最后,最好是关闭docker服务,再启动。否则可能出现上面的配置不起作用的问题。

相关推荐
Discipline~Hai6 分钟前
Linux网络编程05-sqlite3数据库
linux·c语言·网络·数据库·sqlite·linux应用软件编程
xrlfreedom10 分钟前
大厂 MCP 面试实录:桌面客户端 stdio MCP Server 调试与安全加固方案设计
docker·结构化输出·mcp·提示注入防护
wdfk_prog13 分钟前
Docker 开发环境到底要交付什么:镜像、源码与运行脚本
运维·docker·容器
Huangjin007_15 分钟前
【Linux 系统篇(十七)】进程(五) :进程切换、O(1) 调度算法
linux·运维·服务器
weixin_4643076316 分钟前
linux虚拟机断网
linux·运维·服务器
一技安身20 分钟前
【Docker】Docker 和 docker‑compose 的核心区别 + 为什么要单独装 compose
docker·容器·eureka
λqaq734 分钟前
Docker 容器入门基础:Cloud Studio 在线 Linux 环境上手
linux·运维·docker
en.en..36 分钟前
LVGL 普通函数指针与结构体函数指针原理
linux·windows·microsoft
byte轻骑兵37 分钟前
【BlueZ 】Adapter 模块:蓝牙适配器(主设备)的初始化与核心逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
流浪0011 小时前
Linux系统篇27——通信(四):System V 消息队列 + 信号量:管道之后,Linux 还藏了哪两样 IPC
linux·运维