標籤:

什麼是docker鏡像?


請多閱讀文檔,https://docs.docker.com/userguide/dockerimages/


要想玩轉Docker,首先要玩轉 Docker 鏡像。

上一張 Docker 命令導圖:

從中可以看出,Docker 包含三個基本概念,分別是鏡像(Image)、容器(Container)和倉庫(Repository)。鏡像是 Docker 運行容器的前提,倉庫是存放鏡像的場所,可見鏡像更是Docker的核心。

回到正題,Docker 鏡像可以看作是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境變數、用戶等)。鏡像不包含任何動態數據,其內容在構建之後也不會被改變。

要想更深入的了解 Docker 鏡像,鏡像的原理也必不可少,而這其中最重要的概念就是鏡像層(Layers)(如下圖)。鏡像層依賴於一系列的底層技術,比如文件系統(filesystems)、寫時複製(copy-on-write)、聯合掛載(union mounts)等,幸運的是你可以在很多地方學習到這些技術,這裡就不再贅述技術細節。

總的來說,你最需要記住這點:

在 Dockerfile 中, 每一條指令都會創建一個鏡像層,繼而會增加整體鏡像的大小。

鏡像作為 Docker 最突出的創新之一,它變革了軟體交付標準。理解鏡像,對理解整個 Docker 的生命周期非常重要。

註:對鏡像應用感興趣的同學,還可以看看這幾期的《玩轉 Docker 鏡像》系列,圖文結合視頻,可以幫助更好的理解 Docker 鏡像。

利益相關:

了解網易雲相關產品 鏡像倉庫-網易雲


Docker入門教程(一)介紹


推薦閱讀:

docker怎麼修改拉取源從指定的國內倉庫拉取鏡像?
如何基於Docker進行開發?
DaoCloud和雲雀到底誰家的技術比較強一些?VMware和微軟系的比較?
將JVM運行於DOCKER上,有什麼意義嗎?或者,什麼場景下,需要把JVM運行於DOCKER上?
現在國內、國際市場上有哪些docker的容器管理平台?

TAG:Docker |