Ubuntu

確定容器是使用伺服器包還是它自己的包的確定方法

  • May 28, 2021

我對容器化的理解是有限的,所以這個問題可能被誤導了,但我知道 Docker 容器利用其主機系統的一些核心資源來保持相對輕量級的事實。據我所知,這可以擴展到作業系統分佈式包(例如 binutils)。

假設我沒有錯誤地認為 docker 容器有能力利用主機提供的包,那麼是否有一種標準方法來列舉容器在其託管時打算/期望在給定伺服器上找到的所有那些包?

我知道 Docker 容器利用其主機系統的一些核心資源來保持相對輕量級的事實。

是的,容器共享主機核心。

據我所知,這可以擴展到作業系統分佈式包(例如 binutils)。

可以,但非常不尋常,需要在容器外手動設置——基本上,您需要從主機掛載一個卷,允許容器訪問其文件系統的相關部分。

在絕大多數情況下,容器的使用者空間部分與主機完全分離。沒有標準的方法來列舉容器期望在主機上找到的包,因為容器通常沒有這樣的期望並且它們沒有辦法聲明這樣的期望。如果您遇到這樣的容器,文件應該會告訴您,並且如果它有任何類型的部署描述符(例如Kubernetes 的 Helm 圖表),它將包括所需的捲和掛載點(但這不會告訴你它需要從主人那裡得到什麼)。

容器實際上與主機無關:它們在具有適當容器執行時的任何系統上執行,並且主機可以使用它想要的任何包系統,甚至根本不使用。所以容器甚至沒有必要的概念來要求來自主機的包;這將違背容器背後的一些基本原則。

引用自:https://unix.stackexchange.com/questions/651848