在 Windows 10 上构建 rhel7-atomic Dockerimage

在 Windows 10 上构建 rhel7-atomic Dockerimage

我的主机系统是 Windows 10,我想基于 rhel7-atomic 构建一个 Docker 镜像。

Dockerfile:
FROM registry.access.redhat.com/rhel7-atomic
RUN microdnf --enablerepo=rhel-7-server-rpms \
install java-1.8.0-openjdk-headless --nodocs ;\
microdnf clean all

来源:介绍 Red Hat Enterprise Linux Atomic 基础映像

输出:

 $ docker build --force-rm=true --no-cache=true -t=rhel .
 Sending build context to Docker daemon  5.632kB Step 1/2 : FROM
 registry.access.redhat.com/rhel7-atomic  ---> 4364d4c393ff Step 2/2 :
 RUN microdnf --enablerepo=rhel-7-server-rpms                 install
 java-1.8.0-openjdk-headless --nodocs ;microdnf clean all  ---> Running
 in 87b753f6bded

 (process:6): librhsm-WARNING **: 07:20:18.402: Found 0 entitlement
 certificates

 (process:6): librhsm-WARNING **: 07:20:18.404: Found 0 entitlement
 certificates error: (--enablerepo) repo rhel-7-server-rpms not found

 (process:8): librhsm-WARNING **: 07:20:18.433: Found 0 entitlement
 certificates

 (process:8): librhsm-WARNING **: 07:20:18.435: Found 0 entitlement
 certificates Complete. Removing intermediate container 87b753f6bded 
 ---> 77d1aebf6942 Successfully built 77d1aebf6942 Successfully tagged rhel:latest

我也尝试使用 yum 但出现同样的错误。

问题是,我需要为我的主机订阅。我在 developers.redhat.com 上注册了自己,但我无法在 dockerfile 中运行 subscription-manager,因为找不到该命令。我在这里发现了另一个问题,指出主机必须有订阅:Rhel7 原子 docker 基础镜像订阅

因此,看来注册我的主机并附加有效订阅的唯一方法是下载官方 rhel ISO 映像并在 VM 上运行它,将 VM 中的此主机系统订阅到 redhat 并在那里构建我的 docker 映像。

我不喜欢这种方式的原因是,由于缺少订阅,我必须下载 7 GB 的 rhel 映像并启动 VM

这是正确的吗?还是还有其他我遗漏的方法?

使用 CentOS 或 Fedora 作为 docker 构建的基础镜像是否是更好的解决方案?

或者不是订阅的问题而是 Windows 10 上的 docker 安装的问题:https://access.redhat.com/discussions/3219221

答案1

问题是 Windows 10 上的 Docker 不知道 Red Hat 秘诀,并且主机没有提供容器要继承的订阅。要实现这一点,您需要使用 Red Hat yum 存储库中的 docker 包在具有订阅的主机上运行构建。

我建议首先使用 CentOS,假设您需要 Red Hat 兼容性。例如,这可能是需要在生产中在 RHEL 映像/主机上运行的 POC。

相关内容