docker私有仓库更改过ip地址,
旧的ip地址是 10.1.28.60
新的ip地址是 10.1.22.70
当尝试从命令行登录时docker login --username=admin 10.1.22.70:9000
错误提示如下:
Error response from daemon
: Get "http://10.1.22.70:9000/v2/"
: Get "http://10.1.28.60:9000/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry"
: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
奇怪的地方是,请求新的ip地址10.1.22.70
返回的错误信息里,出现了旧的ip地址10.1.28.60
。这个旧的ip地址是存在哪儿的?要如何清除掉?
另外,客户端 /etc/docker/daemon.json 配置如下:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries": [
"10.1.22.70:9000"
],
"features": {
"buildkit": false
}
}
在更改配置后,已经重新启动:
systemctl daemon-reload
systemctl restart docker.service
另外, /root/.docker/config.json 中似乎保存着旧ip的相关数据,已删除,好像也没什么用。
那么,这个是客户端的问题还是docker私库的问题?有没有可能是 docker私库 返回的旧的ip地址?
感谢解答!
补充:2023-04-24
问题出在harbor私库端。解决步骤:
1、找到harbor安装目录下:harbor.yml
# Configuration file of Harbor
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 10.1.28.60
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 9000
harbor配置文件中果然保存的有 旧的ip地址10.1.28.60 (由于时间久远,已经忘记了这个 ip 是当初手工设置进来的,还是 harbor安装脚本生成的)
2、修改 hostname 配置后,docker-compose 停止和重启harbor,好像并没有效果。
3、最后找到了CSDN上一篇文章:[https://blog.csdn.net/qq_28077405/article/details/106661572]
重新执行 ./install命令,然后访问正常了。
from chatGPT
这个问题看起来像是 Docker 客户端本地缓存了旧的 IP 地址,然后在向新的地址发送请求时出错了。
在客户端中有一个名为 /etc/hosts
的文件,它可以将主机名映射到 IP 地址。如果 Docker 客户端在先前的请求中将私有仓库的主机名解析为旧的 IP 地址并将其保存到了 /etc/hosts
文件中,那么在向新的 IP 地址发送请求时,可能会尝试使用旧的 IP 地址进行请求,导致请求失败。
为了解决这个问题,可以尝试在客户端中清除 /etc/hosts
文件中与私有仓库相关的任何旧条目,以便 Docker 客户端在向私有仓库发送请求时能够正确解析主机名并使用新的 IP 地址。
另外,你提到了 /root/.docker/config.json
文件中保存了旧的 IP 地址相关的数据,这个文件实际上是 Docker 客户端的配置文件,其中包含 Docker Hub、私有仓库的认证信息等等。如果你已经从中删除了与私有仓库相关的旧 IP 地址的条目,那么这个文件应该不会影响到你的问题。
最后,你也可以尝试在 Docker 私有仓库中检查是否存在任何配置文件或设置,这些设置可能会导致 Docker 私有仓库返回旧的 IP 地址。例如,如果私有仓库是通过 Kubernetes 集群进行部署的,那么可能需要检查 Kubernetes 中是否还有任何旧的服务或节点 IP 地址没有更新,这些 IP 地址可能会被用于私有仓库的服务发现。
问题内容: 我通过自定义证书配置了不安全的注册表。提供用户名和密码后,收到错误消息为 “来自守护程序的错误响应:获取 https:// ip 地址:5000 / v1 / users /:x509:未知授权机构签名的证书”。 问题答案: 执行以下步骤以使用私有证书对docker登录: 使用以下命令生成私有SSL证书。这将创建带有两个文件domain.crt,domain.key的certs文件夹
私有仓库 有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。 本节介绍如何使用本地仓库。 docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 docker-registry v2.x 版本。 安装运行 docker-registry 容器运行 你可以通过获取官方 registry 镜像来运行。 $ docker
本文向大家介绍Docker 私有仓库恢复实例详解,包括了Docker 私有仓库恢复实例详解的使用技巧和注意事项,需要的朋友参考一下 Docker 私有仓库恢复 之前openstack平台由于停电等影响,导致之前制作的registry 私有仓库的主机挂掉,还好数据挂载在nfs中,然后现在尝试重新启动恢复。 虚机安装nfs服务 apt-get install -y nfs-common 编辑 /etc
本文向大家介绍Docker私有仓库Registry部署的实现,包括了Docker私有仓库Registry部署的实现的使用技巧和注意事项,需要的朋友参考一下 随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库。目前常用的两种仓库:公共仓库和私有仓库。最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的。 私有仓库最常用的就是Regis
本文向大家介绍搭建Docker私有仓库(自签名方式),包括了搭建Docker私有仓库(自签名方式)的使用技巧和注意事项,需要的朋友参考一下 为了能集中管理我们创建好的镜像,方便部署服务,我们会创建私有的Docker仓库。通读了一遍官方文档,Docker为了确保安全使用TLS,需要CA认证,认证时间长的要钱啊,免费过期时间太短,还是用自签名比较简单。 准备环境 环境:两台Centos 7 虚拟机
本文向大家介绍Docker Registry 私有仓库搭建详细步骤,包括了Docker Registry 私有仓库搭建详细步骤的使用技巧和注意事项,需要的朋友参考一下 Docker Registry 私有仓库搭建 官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了。如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库