dockerfile拉取私库镜像_Dockerfile From 私有库认证问题
一、 写作背景近期折腾 Docker、K8S,在 K8S 集群上搭建了 Harbor 等应用,在使用过程中发现一些问题记录一下。此次问题是向私库传输镜像后,在 dockerfile 中使用该镜像系统报认证错误。二、问题描述在 Dockerfile 内使用自建 Harbor 中的私有镜像,docker build 时,部分运行 Docker 的服务器上出现认证失败的问题,而在同一台服务器上使用 do
一、 写作背景
近期折腾 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 编码格式)到该文件,有些问题是该文件记录的信息不正确造成的。尝试删除该文件,或与其它正常文件对比删除相关配置。
更多推荐
所有评论(0)