1. 程式人生 > >Docker 三個基本概念——映象、容器、倉庫

Docker 三個基本概念——映象、容器、倉庫

文章目錄


Docker 三個基本概念:

  1. 映象(Image)
  2. 容器(Container)
  3. 倉庫(Repository)

1、映象 (Image)

Docker映象 ,類似於虛擬機器映象,可以將它理解為一個面向 Docker 引擎的只讀模板,包含了檔案系統。

例如:一個映象可以只包含一個完整的 CentOS 作業系統環境,可以把它稱為一個 CentOS 映象,映象也可以安裝了 Nginx 應用程式(或者使用者需要的其他軟體),可以把它稱為一個 Nginx 映象。

映象是建立 Docker 容器的基礎,通過版本管理和增量的檔案系統,Docker 提供了一套十分簡單的機制(倉庫)建立和更新現有映象,使用者可以從網上下載一個已經做好的應用映象,並通過命令直接建立 Docker 容器來使用。

2、容器 (Container)

Docker容器,類似於一個箱子,可以把容器看做是一個簡易的 Linux 系統環境(其中,包括 root 使用者許可權,程序空間,使用者空間和網路空間等),以及執行在其中的應用程式打包而成的一個箱子。Docker 利用容器這個箱子來隔離和執行應用映象。

先有映象,才能建立 容器。
映象的一個例項 就是 一個容器。
容器是從映象建立的應用執行例項,可以對容器進行啟動,停止,刪除等常規操作。這些不同的容器之間都是相互隔離互不可見的。映象自身是隻讀的,容器從映象啟動的時候,Docker會在映象的最上層建立一個可寫層,映象本身將保持不變。

3、倉庫 (Repository)

Docker倉庫,類似於程式碼的倉庫(如svn、git、maven等),是Docker用來集中存放映象檔案的場所。

根據所儲存的映象是否公開分享,Docker倉庫又分為:

  • 1.公開倉庫
  • 2.私有倉庫

公開倉庫 就是公共開放的映象儲存的地方,目前最大的公開倉庫是 Dokcer Hub

registry.hub.docker.com),存放了大量的映象可供下載使用。國內的公開倉庫有Docker Poolaliyunacs-public-mirror.oss-cn-hangzhou.aliyuncs.com)。

私有倉庫 是內部使用的私有不對外開放的倉庫,使用者可以內部自行搭建,內部分享映象,方便快捷的分享專屬環境的映象檔案。

當用戶建立了自己的映象之後,就可以使用 push自己的映象 上傳到指定的 公有或私有倉庫。這樣使用者下次在另一臺機器上使用該映象時,只需將其從倉庫 pull 下來就可以了。

3.1、倉庫註冊伺服器

人們容易把 倉庫倉庫註冊伺服器(Registry Server)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器 往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。例如,存放Ubuntu作業系統映象的倉庫,稱為Ubuntu倉庫,其中可能包括13.04、14.04、18.04等不同版本的映象。

每個倉庫存放某一類映象。如圖:

4、映象與容器的關係

映象與容器 類似於面向物件程式設計(如java)中的類與物件的關係。
如圖:

Docker 面向物件 (java)
映象
容器 物件
映象的 一個例項
就是 一個容器
類的 一個例項
就是 一個 物件

5、映象、容器、倉庫 執行關係圖: