Docker核心概念:鏡像、容器和倉庫

0 前言

Docker大部分的操作都圍繞着它的三大核心概念:鏡像、容器和倉庫。因此,準確把握這三大核心概念對於掌握Docker技術尤爲重要。

1. Docker鏡像

Docker鏡像類似於虛擬機鏡像,可以將它理解爲一個只讀的模板。例如,一個鏡像可以包含一個基本的操作系統環境,裏面僅安裝了Apache應用程序(或用戶需要的其他軟件)。可以把它稱爲一個Apache鏡像。鏡像是創建Docker容器的基礎。通過版本管理和增量的文件系統,Docker提供了一套十分簡單的機制來創建和更新現有的鏡像,用戶甚至可以從網上下載一個已經做好的應用鏡像,並直接使用。

2. Docker容器

Docker容器類似於一個輕量級的沙箱,Docker利用容器來運行和隔離應用。容器是從鏡像創建的應用運行實例。它可以啓動、開始、停止、刪除,而這些容器都是彼此相互隔離、互不可見的。可以把容器看作一個簡易版的Linux系統環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)以及運行在其中的應用程序打包而成的盒子。
鏡像自身是隻讀的。容器從鏡像啓動的時候,會在鏡像的最上層創建一個可寫層。

3. Docker倉庫

Docker倉庫類似於代碼倉庫,是Docker集中存放鏡像文件的場所。有時候我們會將Docker倉庫和倉庫註冊服務器(Registry)混爲一談,並不嚴格區分。實際上,倉庫註冊服務器是存放倉庫的地方,其上往往存放着多個倉庫。每個倉庫集中存放某一類鏡像,往往包括多個鏡像文件,通過不同的標籤(tag)來進行區分。 例如存放Ubuntu操作系統鏡像的倉庫,被稱爲Ubuntu倉庫,其中可能包括16.04、18.04等不同版本的鏡像。倉庫註冊服務器的示例如圖所示。
在這裏插入圖片描述
根據所存儲的鏡像公開分享與否,Docker倉庫可以分爲公開倉庫(Public)和私有倉庫(Private)兩種形式。目前,最大的公開倉庫是官方提供的Docker Hub,其中存放着數量龐大的鏡像供用戶下載。國內不少雲服務提供商(如騰訊雲、阿里雲等)也提供了倉庫的本地源,可以提供穩定的國內訪問。當然,用戶如果不希望公開分享自己的鏡像文件,Docker也支持用戶在本地網絡內創建一個只能自己訪問的私有倉庫。當用戶創建了自己的鏡像之後就可以使用push命令將它上傳到指定的公有或者私有倉庫。這樣用戶下次在另外一臺機器上使用該鏡像時,只需要將其從倉庫上pull下來就可以了。

可以看出,Docker利用倉庫管理鏡像的設計理念與Git代碼倉庫的概念非常相似,實際上Docker設計上借鑑了Git的很多優秀思想。

摘抄自書籍:Docker技術入門與實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章