docker无法登陆harbor私服或者远程服务器相关问题

本文详述了Docker无法登录Harbor服务器的多种原因及解决策略,包括配置检查、harbor.yml调整、insecure-registries设置、gnupg2pass安装等,适用于同一机器或跨机登录场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文列举了几种情况导致docker无法登陆harbor服务器

本机无法登陆Harbor

同一机器,安装了docker和harbor,登陆时报错信息如下

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
[Error response from daemon: Get http://harbor.tangyuewei.com/v2/: Get http://192.168.200.128/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)

解决方案

  1. 检查harbor安装目录下harbor.ymlhostname值是否为当前机器的IP地址;
  2. 如果没有https证书方便访问,要注释https的相关配置,如下图所示;
    在这里插入图片描述
  3. 修改完成后执行 ./install.sh安装并启动。
  4. 启动成功后,打印信息如下:
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating harbor-db     ... done
Creating redis         ... done
Creating registryctl   ... done
Creating registry      ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----
  1. 修改hosts配置域名访问。
vi /etc/hosts
# 增加如下地址
192.168.200.128 harbor.tangyuewei.com
  1. 重新登录habor;
root@webster:/usr/local/harbo/harbor# docker login harbor.tangyuewei.com -u admin -p Harbor12345
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
# 结果如上,登录成功

如果此方式执行完毕,还是无法登录。则安装gnupg2 pass
ubuntu的安装命令为apt install gnupg2 pass
参考:https://stackoverflow.com/questions/50151833/cannot-login-to-docker-account

其他机器无法登陆Harbor

报错信息如下:

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get http://harbor.tangyuewei.com/v2/: Get http://192.168.200.128/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)

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`

error getting credentials - err: exit status 1, out: `GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files`

如果是使用ip登录,如:docker login 192.168.200.128 -u admin -p Harbor12345则可能是这样

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.200.128/v2/: dial tcp 192.168.200.128:443: connect: connection refused

解决方案

  1. 检查dockerdaemon.json是否配置了insecure-registries。配置好后,需要使用systemctl reload docker重启docker服务。
vi /etc/docker/daemon.json 
# 信息如下
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "registry-mirrors": [
    "https://20v9zh9c.mirror.aliyuncs.com",
    "https://dockerhub.azk8s.cn",
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "http://harbor.tangyuewei.com"
  ],
  "storage-driver": "overlay2"
}

  1. 使用docker info查看配置
    在这里插入图片描述
  2. 修改hosts配置域名访问。
vi /etc/hosts
# 增加如下地址
192.168.200.128 harbor.tangyuewei.com
  1. 重新登录habor;
root@jenkins:/usr/local/docker# docker login harbor.tangyuewei.com -u admin -p Harbor12345
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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
# 结果如上,登录成功

如果此方式执行完毕,还是无法登录。则安装gnupg2 pass
ubuntu的安装命令为apt install gnupg2 pass
参考:https://stackoverflow.com/questions/50151833/cannot-login-to-docker-account

->我的主页

### 配置Docker仓库和标签选项 为了在 IntelliJ IDEA 中成功推送 Docker 镜像至私有仓库,需完成一系列配置工作。确保本地环境已安装并启动 Docker 服务,并且该服务的 TCP 端口 2375 已被正确暴露[^3]。 #### 安装与配置 Docker 插件 首先,在 IntelliJ IDEA 的插件市场中查找并安装 Docker 插件。安装完成后重启 IDE 使更改生效。随后通过 `File` -> `Settings` (Windows/Linux) 或者 `IntelliJ IDEA` -> `Preferences` (macOS),进入设置界面找到 Plugins 并激活 Docker 支持功能。 #### 连接远程或本地 Docker Daemon 前往 `Tools` -> `Docker` -> `Connect to Docker...` 来添加新的连接条目。对于大多数情况,默认选择 Localhost 即可;如果目标是远程服务器,则输入相应的 IP 地址以及端口号(通常是 2375)。确认无误后点击 OK 完成添加操作。 #### 创建项目构建脚本 创建 Maven 或 Gradle 构建工具对应的 pom.xml 文件或者 build.gradle 文件来定义项目的依赖关系和其他必要的编译参数。这里假设已经有一个完整的 Java 应用程序准备打包为 Docker 镜像。 编写合适的 Dockerfile 是至关重要的一步: ```dockerfile FROM adoptopenjdk/openjdk8:ubi WORKDIR /home COPY target/*.jar /home/app.jar EXPOSE 9000 ENV TZ "Asia/Shanghai" RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \ mkdir -p /logs ENTRYPOINT ["java", "-Xmx256m", "-jar", "/home/app.jar"] ``` 此段代码指定了基础镜像、应用程序的工作目录、复制 jar 包路径、开放的服务端口、设定时区变量并将之应用到系统时间上最后指定入口命令执行方式[^1]。 #### 推送镜像前的操作 当上述准备工作都已完成之后就可以着手于实际的推送上去了。右键单击左侧边栏中的镜像名称->Push Image,此时会弹出对话框让用户填写 Registry 和 Tag Information: - **Registry**: 如果是要上传到官方公共库则留空即可;如果是企业内部使用的 Harbor 私服或者其他自托管平台,请按照其文档指引提供完整 URL。 - **Repository Name & Tag**: 给定一个有意义的名字作为存储位置标识符加上版本号或其他描述性的 tag[^2]. 提交表单后等待一段时间直至提示消息显示推送过程顺利完成为止。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tangyuewei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值