我正在尝试在一个简单的 docker 主机上运行一个 rhel 容器。docker 主机是 rhel7,已完全正确订阅。我想使用纯 docker 引擎包而不是 redhat 自带的包,但不幸的是,一旦我切换到纯 docker 引擎,订阅管理和使用似乎就不可用了。我可以毫无问题地运行映像,但是一旦我尝试使用 yum,就没有运气了:
# docker run --rm -it registry.access.redhat.com/rhel7 /bin/sh
sh-4.2# yum update
Loaded plugins: ovl, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
There are no enabled repos.
Run "yum repolist all" to see the repos you have.
You can enable repos with yum-config-manager --enable <repo>
Yum 和订阅功能在主主机系统上运行良好。有人知道使用纯引擎和主机凭据让 redhat 容器运行(并能够提取软件包)的方法吗?
谢谢!
铝
答案1
在 RHEL7 机器上开发容器(或部署在容器中的应用程序)的“官方”方法是使用容器开发套件。
Red Hat 容器开发套件提供了基于 Red Hat Enterprise Linux 的预构建容器开发环境,可帮助您开发基于容器的(有时也称为 Docker) 应用程序。您构建的容器可以轻松部署在任何 Red Hat 容器主机或平台上,包括:Red Hat Enterprise Linux、Red Hat Enterprise Linux Atomic Host 和我们的平台即服务解决方案 OpenShift Enterprise 3。
斜体是我的。
订阅的 RHEL7(甚至是开发人员订阅)将透明地允许您从容器中使用您的订阅可用的 RHEL 存储库。
答案2
因此,看起来您可以通过在容器内安装 /etc/pki/consumer 和 /etc/pki/entitlement 来使其工作:
docker run --rm -it -v /etc/pki/consumer:/etc/pki/consumer:ro -v /etc/pki/entitlement:/etc/pki/entitlement:ro --privileged registry.access.redhat.com/rhel7 /bin/sh
还有其他更“官方”的方法来实现这个功能吗?