映象是 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...