当前位置:   article > 正文

docker login 报错: http: server gave HTTP response to HTTPS client

docker login 报错: http: server gave HTTP response to HTTPS client

环境: 自建 HarborDocker

1. 问题分析

# 命令,这里用的是 IP,可以为域名
docker login -u test 172.16.51.182:31120
# 输入密码
Password:

# 报错如下: 
Error response from daemon: Get "https://172.16.51.182:31120/v2/": 
http: server gave HTTP response to HTTPS client
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这个错误提示意味着的 Docker 客户端正在尝试通过 HTTPS 协议连接到一个只接受 HTTP 连接的服务器。这是因为 Docker 默认会尝试使用 HTTPS 连接到 Docker Registry

按照标准流程来说,应该 Harbor 仓库地址应该支持 Https

如果对安全要求不高的话,可以通过一个简单的方式处理:

直接在 Docker 的配置文件中明确指定 Docker Registry 服务器使用 HTTP 协议来解决这个问题。

以下是如何修改 Docker 的配置文件的步骤:

2. 处理方式

2.1 打开或创建 Docker 配置文件

这个文件通常位于 /etc/docker/daemon.json。如果该文件不存在,可以创建一个。

2.2 编辑 Docker 配置文件

选择自己熟悉的编辑器即可。

# 使用 vim
vim /etc/docker/daemon.json
  • 1
  • 2

在该文件中添加 insecure-registries 字段,并将 Docker Registry 服务器地址加入到这个字段的值中。例如上面的地址 172.16.51.182:31120(或域名):

{
  // ...
  "insecure-registries" : ["172.16.51.182:31120"]
  // ...
}
  • 1
  • 2
  • 3
  • 4
  • 5

根据实际情况,替换为自己的 Docker Registry 服务器的地址。

2.3 保存并关闭配置文件。

保存并关闭配置文件。

2.4 重新启动 Docker 服务。

在大多数 Linux 发行版中,可以使用以下命令来重启 Docker 服务:

sudo systemctl restart docker
  • 1

大功告成,然后继续 HTTP 协议连接到相应的 Docker Registry 服务器。

docker login -u test 172.16.51.182:31120

# 会提示让输入密码:
Password:

# 登录成功
Login Succeeded
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

【注】上面的算是一个骚操作,但是还是建议 Docker Registry 镜像仓库服务器支持 HTTPS

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/896534
推荐阅读
相关标签
  

闽ICP备14008679号