Docker 架構
Docker 包括三個基本概念:
- 映象(Image):Docker 映象(Image),就相當於是一個 root 檔案系統。比如官方映象 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 檔案系統。
- 容器(Container):映象(Image)和容器(Container)的關係,就像是面向物件程式設計中的類和例項一樣,映象是靜態的定義,容器是映象執行時的實體。容器可以被建立、啟動、停止、刪除、暫停等。
- 倉庫(Repository):倉庫可看成一個程式碼控制中心,用來儲存映象。
Docker 使用客戶端-伺服器 (C/S) 架構模式,使用遠端API來管理和建立Docker容器。
Docker 容器通過 Docker 映象來建立。
容器與映象的關係類似於面向物件程式設計中的物件與類。
Docker | 面向物件 |
---|---|
容器 | 物件 |
映象 | 類 |
概念 | 說明 |
---|---|
Docker 映象(Images) |
Docker 映象是用於建立 Docker 容器的模板,比如 Ubuntu 系統。 |
Docker 容器(Container) |
容器是獨立執行的一個或一組應用,是映象執行時的實體。 |
Docker 客戶端(Client) |
Docker 客戶端通過命令列或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 與 Docker 的守護程序通訊。 |
Docker 主機(Host) |
一個物理或者虛擬的機器用於執行 Docker 守護程序和容器。 |
Docker Registry |
Docker 倉庫用來儲存映象,可以理解為程式碼控制中的程式碼倉庫。 Docker Hub(https://hub.docker.com) 提供了龐大的映象集合供使用。 一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標籤(Tag);每個標籤對應一個映象。 通常,一個倉庫會包含同一個軟體不同版本的映象,而標籤就常用於對應該軟體的各個版本。我們可以通過 <倉庫名>:<標籤> 的格式來指定具體是這個軟體哪個版本的映象。如果不給出標籤,將以 latest 作為預設標籤。 |
Docker Machine |
Docker Machine是一個簡化Docker安裝的命令列工具,通過一個簡單的命令列即可在相應的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |