最小的鏡像 - 天天5分鐘玩轉容器技術(9)

鏡像是 Docker 容器的基石,容器是鏡像的運行實例,有了鏡像才能啓動容器。docker

本章內容安排以下:學習

  1. 首先經過研究幾個典型的鏡像,分析鏡像的內部結構。ui

  2. 而後學習如何構建本身的鏡像。spa

  3. 最後介紹怎樣管理和分發鏡像。操作系統

鏡像的內部結構

爲何咱們要討論鏡像的內部結構?code

若是隻是使用鏡像,固然不須要了解,直接經過 docker 命令下載和運行就能夠了。orm

但若是咱們想建立本身的鏡像,或者想理解 Docker 爲何是輕量級的,就很是有必要學習這部分知識了。ci

咱們從一個最小的鏡像開始吧。it

hello-world - 最小的鏡像

hello-world 是 Docker 官方提供的一個鏡像,一般用來驗證 Docker 是否安裝成功。class

咱們先經過 docker pull 從 Docker Hub 下載它。


用 docker images 命令查看鏡像的信息。

hello-world 鏡像居然還不到 2KB!

經過 docker run 運行。

50.png

其實咱們更關心 hello-world 鏡像包含哪些內容。

Dockerfile 是鏡像的描述文件,定義瞭如何構建 Docker 鏡像。Dockerfile 的語法簡潔且可讀性強,後面咱們會專門討論如何編寫 Dockerfile。

hello-world 的 Dockerfile 內容以下:

只有短短三條指令。

  1. FROM scratch
    此鏡像是從白手起家,從 0 開始構建。

  2. COPY hello /
    將文件「hello」複製到鏡像的根目錄。

  3. CMD ["/hello"]
    容器啓動時,執行 /hello

鏡像 hello-world 中就只有一個可執行文件 「hello」,其功能就是打印出 「Hello from Docker ......」 等信息。

/hello 就是文件系統的所有內容,連最基本的 /bin,/usr, /lib, /dev 都沒有。

hello-world 雖然是一個完整的鏡像,但它並無什麼實際用途。一般來講,咱們但願鏡像能提供一個基本的操做系統環境,用戶能夠根據須要安裝和配置軟件。這樣的鏡像咱們稱做 base 鏡像。

咱們下一節討論 base 鏡像。

二維碼+指紋.png

相關文章
相關標籤/搜索