簡體   English   中英

基於 Alpine 的 Docker 圖像在 Ubuntu 主機上完全兼容?

[英]Alpine based Docker images fully compatible on Ubuntu host?

在 Ubuntu 主機上運行基於 Alpine 的 Docker 圖像是否存在任何兼容性問題或已知限制?

我了解到 Docker 提供了進程級別的隔離,並且機器資源調用是通過 cgroup 接口進行的。 但我想知道(並且擔心)是否存在特定情況甚至語言,除非您在配置主機時采取額外步驟,否則這種類型的設置(在 Ubuntu 主機上運行 Alpine 容器)會出現運行時問題。

編輯:
我想嘗試加強我的問題......

我知道 Docker 提供隔離,但想知道隔離中是否存在泄漏 如果存在泄漏,那么最好在與基本映像匹配的主機上運行 docker 映像,以保證不會發生奇怪的運行時錯誤。

更具體地說,某些級別的應用程序需要 kernel 代碼,並且是使用特定的 kernel 構建的。在具有不同 kernel 的主機上運行這些應用程序可能會讓您遇到奇怪的運行時錯誤。

例如,在 x86 主機上的 Docker 容器中運行 x64 應用程序會導致壞事發生嗎?

只要主機是Linux內核版本3.10或更高版本,您的容器就不會有問題。

您可以查看此鏈接以獲取有關以下原因的更多信息: Docker與普通虛擬機有何不同?

據我了解,Docker在特定內核之上的Linux發行版之間是完全兼容的。 所有Linux發行版基本上都使用相同的內核,這就是Docker Daemon與系統進行交互的地方,因此,無論主機上的發行版如何,容器內部運行的內容都應該完全正常。

如果不是這種情況,那么我想象中的Docker真的不會有用。

去年,我親自在不同的主機系統上運行了不同的發行版容器,而沒有任何問題。

只有在故意破壞容器化系統隔離的情況下才會出現問題,例如所謂的 docker-in-docker 運行,如果它們將非常不同的主機系統的某些部分暴露給容器化應用程序(在這種情況下,標准 C 庫中的不兼容性) ,例如在 Ubuntu 的glibc和 Alpine 的musl會導致問題,因為它們甚至會在兩個不同的 Ubuntu LTS 版本之間,具有不同的glibc構建)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM