中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解base鏡像

發布時間:2021-11-19 16:44:02 來源:億速云 閱讀:182 作者:柒染 欄目:云計算

如何理解base鏡像,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

這里討論 base 鏡像。

base 鏡像有兩層含義:

  1. 不依賴其他鏡像,從 scratch 構建。

  2. 其他鏡像可以之為基礎進行擴展。

所以,能稱作 base 鏡像的通常都是各種 Linux 發行版的 Docker 鏡像,比如 Ubuntu, Debian, CentOS 等。

我們以 CentOS 為例考察 base 鏡像包含哪些內容。
下載鏡像:

docker pull centos

查看鏡像信息:

鏡像大小不到 200MB。

等一下!
一個 CentOS 才 200MB ?
平時我們安裝一個 CentOS 至少都有幾個 GB,怎么可能才 200MB !

相信這是幾乎所有 Docker 初學者都會有的疑問,包括我自己。下面我們來解釋這個問題。

Linux 操作系統由內核空間和用戶空間組成。如下圖所示:

rootfs

內核空間是 kernel,Linux 剛啟動時會加載 bootfs 文件系統,之后 bootfs 會被卸載掉。

用戶空間的文件系統是 rootfs,包含我們熟悉的 /dev, /proc, /bin 等目錄。

對于 base 鏡像來說,底層直接用 Host 的 kernel,自己只需要提供 rootfs 就行了。

而對于一個精簡的 OS,rootfs 可以很小,只需要包括最基本的命令、工具和程序庫就可以了。相比其他 Linux 發行版,CentOS 的 rootfs 已經算臃腫的了,alpine 還不到 10MB。

我們平時安裝的 CentOS 除了 rootfs 還會選裝很多軟件、服務、圖形桌面等,需要好幾個 GB 就不足為奇了。

base 鏡像提供的是最小安裝的 Linux 發行版

第二行 ADD 指令添加到鏡像的 tar 包就是 CentOS 7 的 rootfs。在制作鏡像時,這個 tar 包會自動解壓到 / 目錄下,生成 /dev, /porc, /bin 等目錄。

注:可在 Docker Hub 的鏡像描述頁面中查看 Dockerfile 。

支持運行多種 Linux OS

不同 Linux 發行版的區別主要就是 rootfs。

比如 Ubuntu 14.04 使用 upstart 管理服務,apt 管理軟件包;而 CentOS 7 使用 systemd 和 yum。這些都是用戶空間上的區別,Linux kernel 差別不大。

所以 Docker 可以同時支持多種 Linux 鏡像,模擬出多種操作系統環境。

上圖 Debian 和 BusyBox(一種嵌入式 Linux)上層提供各自的 rootfs,底層共用 Docker Host 的 kernel。

這里需要說明的是:

  1. base 鏡像只是在用戶空間與發行版一致,kernel 版本與發型版是不同的。
    例如 CentOS 7 使用 3.x.x 的 kernel,如果 Docker Host 是 Ubuntu 16.04(比如我們的實驗環境),那么在 CentOS 容器中使用的實際是是 Host 4.x.x 的 kernel。 
    ① Host kernel 為 4.4.0-31
    ② 啟動并進入 CentOS 容器
    ③ 驗證容器是 CentOS 7
    ④ 容器的 kernel 版本與 Host 一致

  2. 容器只能使用 Host 的 kernel,并且不能修改。
    所有容器都共用 host 的 kernel,在容器中沒辦法對 kernel 升級。如果容器對 kernel 版本有要求(比如應用只能在某個 kernel 版本下運行),則不建議用容器,這種場景虛擬機可能更合適。

看完上述內容,你們掌握如何理解base鏡像的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁东县| 马尔康县| 寿宁县| 海盐县| 望城县| 铁力市| 天峨县| 南郑县| 安吉县| 金沙县| 家居| 青铜峡市| 赤峰市| 星座| 乡城县| 宁化县| 西丰县| 霸州市| 普宁市| 怀仁县| 孟津县| 沙湾县| 阿荣旗| 宜都市| 临潭县| 印江| 永嘉县| 简阳市| 且末县| 黎城县| 翁牛特旗| 内江市| 竹北市| 称多县| 永德县| 平罗县| 柏乡县| 秀山| 澄迈县| 潮安县| 密山市|