最小的映象 每天5分鐘玩轉容器技術(9)

2021-09-08 12:46:12 字數 1011 閱讀 3026

映象是 docker 容器的基石,容器是映象的執行例項,有了映象才能啟動容器。

本章內容安排如下:

首先通過研究幾個典型的映象,分析映象的內部結構。

然後學習如何構建自己的映象。

最後介紹怎樣管理和分發映象。

為什麼我們要討論映象的內部結構?

但如果我們想建立自己的映象,或者想理解 docker 為什麼是輕量級的,就非常有必要學習這部分知識了。

我們從乙個最小的映象開始吧。

hello-world 是 docker 官方提供的乙個映象,通常用來驗證 docker 是否安裝成功。

docker images命令檢視映象的資訊。

hello-world 映象竟然還不到 2kb!

通過docker run執行。

其實我們更關心 hello-world 映象包含哪些內容。

dockerfile 是映象的描述檔案,定義了如何構建 docker 映象。dockerfile 的語法簡潔且可讀性強,後面我們會專門討論如何編寫 dockerfile。

hello-world 的 dockerfile 內容如下:

只有短短三條指令。

from scratch

此映象是從白手起家,從 0 開始構建。

copy hello /

將檔案「hello」複製到映象的根目錄。

cmd ["/hello"]

容器啟動時,執行 /hello

映象 hello-world 中就只有乙個可執行檔案 「hello」,其功能就是列印出 「hello from docker ......」 等資訊。

/hello 就是檔案系統的全部內容,連最基本的 /bin,/usr, /lib, /dev 都沒有。

hello-world 雖然是乙個完整的映象,但它並沒有什麼實際用途。通常來說,我們希望映象能提供乙個基本的作業系統環境,使用者可以根據需要安裝和配置軟體。這樣的映象我們稱作 base 映象。

我們下一節討論 base 映象。

構建映象 每天5分鐘玩轉容器技術(12)

對於 docker 使用者來說,最好的情況是不需要自己建立映象。幾乎所有常用的資料庫 中介軟體 應用軟體等都有現成的 docker 官方映象或其他人和組織建立的映象,我們只需要稍作配置就可以直接使用。使用現成映象的好處除了省去自己做映象的工作量外,更重要的是可以利用前人的經驗。特別是使用那些官方映象...

構建映象 每天5分鐘玩轉容器技術(12)

對於 docker 使用者來說,最好的情況是不需要自己建立映象。幾乎所有常用的資料庫 中介軟體 應用軟體等都有現成的 docker 官方映象或其他人和組織建立的映象,我們只需要稍作配置就可以直接使用。使用現成映象的好處除了省去自己做映象的工作量外,更重要的是可以利用前人的經驗。特別是使用那些官方映象...

base 映象 每天5分鐘玩轉容器技術(10)

上一節我們介紹了最小的 docker 映象,本節討論 base 映象。base 映象有兩層含義 不依賴其他映象,從 scratch 構建。其他映象可以之為基礎進行擴充套件。所以,能稱作 base 映象的通常都是各種 linux 發行版的 docker 映象,比如 ubuntu,debian,cent...