weixin_43674800 2024-03-22 13:29 采纳率: 93.4%
浏览 22
已结题

docker login 报错

报错如下

[root@localhost docker]# docker login 128.238.132.196:5000
Username: admin
Password: 
Error response from daemon: Get "http://128.238.132.196:5000/v2/": Get "http://10.0.2.88:5000/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry": context deadline exceeded (Client.Timeout exceeded while awaiting headers)


/etc/docker/daemon.json中配置了"insecure-registries": ["128.238.132.196:5000"],128.238.132.196是一个外网地址,映射内网的harbor服务器IP为10.0.2.88,端口都是5000,不知道报错是什么原因

{
"log-driver":"json-file",
"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"],
"log-opts":{ "max-size" :"1024m","max-file":"10"},
"insecure-registries": ["128.238.132.196:5000"]
}


  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-22 13:30
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:为什么容器镜像登录到Harbor服务器时报错"Error response from daemon: Get http://128.238.132.196:5000/v2/: Get http://10.0.2.88:5000/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry: context deadline exceeded (Client.Timeout exceeded while awaiting headers)"? 回答:
    1. 错误信息中包含"context deadline exceeded",可能是因为登录超时导致的。可以尝试增加超时时间或检查网络连接是否正常。
    2. 报错中显示的Harbor服务器地址为"10.0.2.88:5000",而在/etc/docker/daemon.json中配置的是"128.238.132.196:5000"。根据问题描述,这两个地址应该是相同的。需要确认Harbor服务器地址是否正确并重新配置。
    3. 我们可以在访问Harbor服务器时使用代理来解决报错。在/etc/systemd/system/docker.service.d/http-proxy.conf中配置代理信息,重载docker.service即可。例如:
    [Service]
    Environment="HTTP_PROXY=http://proxy.example.com:80/" "HTTPS_PROXY=https://proxy.example.com:443/"
    
    1. 如果使用的是Harbor 1.5及以上版本,在Harbor服务器的配置文件中增加如下配置:
    proxy:
      http_proxy: http://proxy.example.com:80/
      https_proxy: https://proxy.example.com:443/
    

    这样可以直接在Harbor服务器上配置代理。 参考代码:

    # 增加超时时间
    docker login --username=admin --password=xxxx --timeout=500 128.238.132.196:5000
    # 检查Harbor服务器地址并重新配置
    sed -i 's/128.238.132.196:5000/10.0.2.88:5000/g' /etc/docker/daemon.json
    systemctl reload docker.service
    # 在代理中访问Harbor服务器
    echo "HTTP_PROXY=http://proxy.example.com:80/" >> /etc/systemd/system/docker.service.d/http-proxy.conf
    echo "HTTPS_PROXY=https://proxy.example.com:443/" >> /etc/systemd/system/docker.service.d/http-proxy.conf
    systemctl daemon-reload
    systemctl reload docker.service
    # 在Harbor服务器中配置代理
    vi /harbor/harbor.cfg
    # 增加以下配置
    proxy:
      http_proxy: http://proxy.example.com:80/
      https_proxy: https://proxy.example.com:443/
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 3月22日

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题