docker的宿主系統是centos,爲什麼可以運行ubuntu的鏡像呢?

首先需要區分Linux內核Linux發行版

  • Linux內核是Linux操作系統的核心, 負責硬件管理, 比如管理內存、管理磁盤(文件系統)、管理CPU(進程)等等...

  • Linux發行版是在Linux內核的基礎上添加了一些工具軟件,比如圖形界面、函數庫、軟件包管理系統等等...

CentOS與Ubuntu是不同的Linux發行版, 它們都是基於Linux內核, 只是添加的工具軟件不同。比如, 他們的軟件包管理系統不同, CentOS使用yum命令安裝軟件, 而Ubuntu使用apt-get命令安裝軟件。

因此CentOS與Ubuntu的內核是相同的(版本可能不同), 只是所安裝的軟件不同, 即文件系統不同。

Docker容器技術是基於Linux內核實現的, 它主要用到了兩個內核模塊:

  • Namespace: 用於容器的隔離, 例如PID Namespace使得容器中的進程無法感知宿主機以及其他容器中的進程。

  • Cgroups: 用於容器的資源控制, 比如限制容器所使用的內存大小或者CPU個數。

在CentOS上運行基於Ubuntu鏡像的容器時, 容器使用了CentOS主機的內核以及Ubuntu鏡像, Ubuntu鏡像中安裝了Ubuntu的各種軟件(apt-get)。

ref:https://segmentfault.com/q/1010000005761583/a-1020000005761933


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章