Docker 筆記 Part 1 |簡介

嘖喂
4 min readNov 7, 2017

--

由於和朋友組了讀書會,開始研討關於docker的架構與使用,因此撰寫此筆記作為重點整理,並期望能幫助其他也在學習的網友們!

Introduction to Docker

Docker 是一個開源專案,提供開發、轉移和執行應用程式。Docker讓應用程式可以獨立於基礎建設中,提高交付的速度。

Docker讓基礎建設的管理更容易,就如同管理應用程式一樣。讓部署、測試程式碼更加便利。

Docker將應用程式獨立於Container當中,省去搭建作業系統的成本,使得程式運行更快速。

基於Container技術,讓建立應用程式更快速與簡單。

Container vs. VM

VM虛擬化是實作在硬體層之上,為了建立可以執行整套作業系統的sandbox

Container是實作在作業系統層之上,將應用程式所需的程式碼、函式庫、環境配置檔都打包,而建立的sandbox。

簡而言之,VM打包作業系統,Container打包應用程式。

Docker的虛擬化
傳統VM的虛擬化

註:Hypervisor是用來建立與管理VM的運作。

Docker Conponents

主要包含三部分:

1. Docker Image (映像檔)

唯獨的環境模板,涵蓋Container內的所有程式(包括應用程式、函式庫、環境設定檔),用來建立Docker Container

2. Docker Container (容器)

Container是根據docker image所建立的instance。image是唯獨的,而container是可寫層。每個container之間都是互相獨立的平台。
容器是一個簡易版的 Linux 環境應用程式並可在其中運行程式。

3. Docker Registry (倉庫)

Registry就像是GitHub一樣,是一個線上伺服器,儲存各式的Docker repository。Registry分成public和private,如最大的public registry—Docker Hub

Repository是一個docker images的集合,包含所有同名不同tag的images,如library/python — Docker Hub

Docker Architecture

Docker使用client-server architecture。組成包含Docker client、daemon與registries。

  • Docker client主要是提供指令操作,透過REST API的方式與Docker daemon溝通。
  • Docker daemon負責管理Docker物件,包含images、containers、網路狀況等。
  • Docker registries如同上面提到,就是遠端伺服器,必要時會將image載入於本機中。
Docker Architecture

參考資料

→ 繼續閱讀:Docker 筆記 Part 2 |指令操作

--

--

嘖喂
嘖喂

No responses yet