了解用于Linux和 Windows容器的Docker“容器主機”與“容器操作系統”
作者:Floyd Hilton
本文主要來探討一下“容器主機”和“容器操作系統”之間的關系,以及它們在 Linux 和 Windows 容器之間的區別。
讓我們來探討一下“容器主機”和“容器操作系統”之間的關系,以及它們在 Linux 和 Windows 容器之間的區別。
一些定義
- 容器主機:也稱為主機操作系統。主機操作系統是 Docker 客戶端和 Docker 守護程序在其上運行的操作系統。在 Linux 和非 Hyper-V 容器的情況下,主機操作系統與運行中的 Docker 容器共享內核。對于 Hyper-V,每個容器都有自己的 Hyper-V 內核。
- 容器操作系統:也被稱為基礎操作系統。基礎操作系統是指包含操作系統如 Ubuntu、CentOS 或 windowsservercore 的鏡像。通常情況下,你將在基礎操作系統鏡像之上構建自己的鏡像,以便可以利用該操作系統的部分功能。請注意,Windows 容器需要一個基礎操作系統,而 Linux 容器不需要。
- 操作系統內核:內核管理諸如內存、文件系統、網絡和進程調度等底層功能。
如下的一些圖
Linux Containers
在上面的例子中:
- 主機操作系統是 Ubuntu。
- Docker 客戶端和 Docker 守護進程(一起被稱為 Docker 引擎)正在主機操作系統上運行。
- 每個容器共享主機操作系統內核。
- CentOS 和 BusyBox 是 Linux 基礎操作系統鏡像。
- “No OS” 容器表明你不需要基礎操作系統以在 Linux 中運行一個容器。你可以創建一個含有 scratch 基礎鏡像的 Docker 文件,然后運行直接使用內核的二進制文件。
- 查看這篇文章來比較基礎 OS 的大小。
Windows Containers - Non Hyper-V
在上面的例子中:
- 主機操作系統是 Windows 10 或 Windows Server。
- 每個容器共享主機操作系統內核。
- 所有 Windows 容器都需要 nanoserver 或 windowsservercore 的基礎操作系統。
Windows Containers - Hyper-V
在上面的例子中:
- 主機操作系統是 Windows 10 或 Windows Server。
- 每個容器都托管在自己的輕量級 Hyper-V 虛擬機中。
- 每個容器使用 Hyper-V 虛擬機內的內核,它在容器之間提供額外的分離層。
- 所有 Windows 容器都需要 nanoserver 或 windowsservercore 的基礎操作系統。
幾個好的鏈接
責任編輯:龐桂玉
來源:
Linux中國