使用ubi8/s2i-base:rhel8.5构建Dockerfile提示拉取权限拒绝如何解决
RedHat UBI基础镜像拉取与使用方案
报错根因
pull access denied报错由两个原因导致:1. 未补全RedHat官方镜像Registry前缀;2. 未完成RedHat官方Registry的身份认证。
操作步骤
1. 修正Dockerfile的基础镜像地址
RedHat官方镜像的完整Registry前缀为registry.redhat.io,首先修改FROM指令:
FROM registry.redhat.io/ubi8/s2i-base:rhel8.5 as Builder
注意:ubi8/s2i-base基于RHEL8系统,默认包管理器为dnf,你当前使用的apk是Alpine系统专属包管理器,执行时会报错,需要将RUN安装指令替换为RHEL8适配的dnf install命令。
2. 完成RedHat Registry身份认证
拉取registry.redhat.io下的镜像需要先完成账号认证:
- 注册RedHat账号(UBI系列镜像免费向所有注册用户开放)
- 本地终端执行登录命令,输入你的RedHat账号用户名和密码:
docker login registry.redhat.io
登录成功后重新执行docker build即可正常拉取基础镜像。
3. 免认证替代方案
如果不需要使用RedHat官方Registry的镜像,可直接使用Quay.io上托管的公开UBI镜像,无需登录即可拉取,修改FROM指令为:
FROM quay.io/ubi8/s2i-base:rhel8.5 as Builder
该镜像内容与RedHat官方Registry发布的内容完全一致。
内容的提问来源于stack exchange,提问作者Edi 0
相关产品推荐
相关产品推荐

