dockerfile拉取私库镜像_Dockerfile From 私有库认证问题

一、 写作背景

近期折腾 Docker、K8S,在 K8S 集群上搭建了 Harbor 等应用,在使用过程中发现一些问题记录一下。

此次问题是向私库传输镜像后,在 dockerfile 中使用该镜像系统报认证错误。

二、问题描述

在 Dockerfile 内使用自建 Harbor 中的私有镜像,docker build 时,部分运行 Docker 的服务器上出现认证失败的问题,而在同一台服务器上使用 docker pull/push 等命令拉取该镜像均无此问题。

三、解决过程

3.1 登录使用 docker login harbor.k8s.sxkj.uat (自建的 Harbor 仓库)登录一下,登录成功后,执行 docker build 报错依然一样,执行 docker push/pull 成功

3.2 更新证书认证

3.2.1、域名证书配置

此操作可解决 Chrome 等浏览器因证书不能访问网站的问题。

将 harbor 的 CA 证书放到 /etc/docker/certs.d/harbor.k8s.sxkj.uat/ (最后一级目录,可以是 IP:Port,出可以是 域名:端口号,或域名,但是是必须是能够通过 web 访问到的 harbor 地址)

或者放置到 ~/docker/certs.d/harbor.k8s.sxkj.uat/ 目录下。

以上操作未能解决dockerfile build 的拉取问题

3.2.2、CA 证书配置

此操作可解决命令行下 docker push/pull 等命令下的证书认证问题。

1、将 CA 证书放置到 /etc/pki/ca-trust/source/anchors/ 目录下

2、 执行 update-ca-trust 升级 CA证书

以上操作未能解决dockerfile build 的拉取问题

3.3 更新Docker配置文件

经查看各系统中 ~/docker/daemon.json 配置文件均一至,无需修改。

在不能正常使用的服务器中发现 ~/docker/config.json 文件与其它正常服务器配置有所区别,故按正常服务器的配置修改不正常服务器,最终成功

至此问题已经解决。

四、分析

~/.docker/config.json 文件是在使用 docker login 命令时生成的,在命令执行成功后,会自动保存相应Docker registry 地址和 账号密码(采用 base64 编码格式)到该文件,有些问题是该文件记录的信息不正确造成的。尝试删除该文件,或与其它正常文件对比删除相关配置。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值