什麼是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 |