yum 與紅帽網路訂閱如何在 rhel Docker 映像中運作?

yum 與紅帽網路訂閱如何在 rhel Docker 映像中運作?

Red Hat Enterprise Linux 7 包含對運行 Docker 容器的官方支持,而 Red Hat 提供了一組官方 rhel Docker 映像。這些鏡像的一個有趣的功能是,可以透過主機的 Red Hat Network Subscription 安裝軟體包,而無需在容器內執行任何配置。

去引用https://access.redhat.com/articles/881893#createimage

「對於目前的 Red Hat Docker 版本,您從 Red Hat 取得的預設 RHEL 7 Docker 映像將能夠利用主機系統提供的 RHEL 7 權利。因此,只要您的 Docker 主機已正確訂閱並且儲存庫已正確訂閱,如果您需要在容器中取得所需的軟體(並且可以從Docker 主機存取網際網路),那麼您應該能夠從RHEL 7 軟體儲存庫安裝軟體包。

我擔心的是實現這一目標的機制相當不透明。例如,當使用 rhel7.1 映像啟動新容器時,yum install foo甚至無需配置 http 代理環境變數即可運行。如果不了解這種機制,系統管理員可能會受到主機系統、Docker 守護程序和正在運行的容器之間未知互動的影響。這也表明主機和容器之間的正常隔離在某種程度上受到了損害(儘管是良性的方式)。

重點說一下:這種訂閱支援是如何實現的?

答案1

紅帽帶有一個docker名為“秘密”補丁的補丁,該補丁在容器運行時將權利資訊安裝到容器中。

您可以在 中看到補丁的更好描述以及上游 PR 的鏈接專案原子/碼頭工人回購協議:

https://github.com/projectatomic/docker/tree/docker-1.13.1-rhel#add-rhel-super-secrets-patchpatch

請注意,您需要選擇其中一個分支(連結前往「docker-1.3.1-rhel」分支)才能查看所有攜帶的補丁資訊。

答案2

了解 Red Hat Satellite 管理的虛擬機器是如何獲得許可的,並脫離 @Leynos 的評論,我希望有類似的東西virt-who,它是一種與虛擬化主機(vSphere、KVM 等)對話並查詢它的服務查找VM的詳細資訊。然後,它在 Satellite 中執行必要的 API 調用,以允許虛擬機器使用主機的資料中心許可證。

我希望 Red Hat docker 守護程式提供類似的功能,讓容器知道它是從訂閱的 Docker 主機運行,從而利用該訂閱。

也來自這裡

重要提示:如本主題所述,使用 docker 命令執行容器並不特別要求您註冊 RHEL Atomic Host 系統並附加訂閱。但是,如果要在容器內執行 yum install 命令,容器必須從 RHEL Atomic Host 獲取有效的訂閱訊息,否則將會失敗。

因此,容器或守護程序中有些東西可以查詢主機以查找訂閱資訊(也可能還有儲存庫資訊)。

相關內容