什麼就Docker?
Docker是一個開源項目, 誕生於2013年初,最初是dotCloud公司內部的一個業餘項目。它基於Google公司推出的Go語言實現。項目後來加入了Linux基金會,遵從了Apache 2.0協議,項目代碼在GitHub 上進行維護。
Docker項目的目標是實現輕量級的操作系統虛擬化解決方案。Docker的基礎是Linux容器(LXC)等技術。在LXC的基礎上Docker進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更爲簡便。用戶操作Docker的容器就像操作一個快速輕量級的虛擬機一樣簡單。
爲什麼要使用Docker?
Docker 相比傳統虛擬機有諸多優勢。
-
啓動速度更快: 秒級啓動。
-
快速的部署和交付: 開發者可以使用一個標準的鏡像來構建一套開發容器,開發完成之後, 運維人員可以直接使用這個容器來部署代碼。
-
更高效的虛擬化: 它是內核級的虛擬化,因此可以實現更高的性能和效率。
-
高效的遷移: Docker可以運行在不同的平臺,用戶可以輕鬆的將一個應用從一個平臺遷移到另一個平臺。
-
節省開支: Docker容器除了運行其中應用外,基本不消耗額外的系統資源,一臺設備可以運行上千個容器。
Docker引擎
docker引擎是一個c/s結構的應用,主要組件見下圖:
- Server是一個常駐進程
- REST API 實現了client和server間的交互協議
- CLI 實現容器和鏡像的管理,爲用戶提供統一的操作界面
Docker構架
Docker使用C/S架構,Client 通過接口與Server進程通信實現容器的構建,運行和發佈。client和server可以運行在同一臺集羣,也可以通過跨主機實現遠程通信。
Docker基本概念
Docker包括三個基本概念
- 鏡像(Image)
Docker提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那裏下載一個已經做好的鏡像來直接使用。鏡像可以用來創建Docker容器。
- 容器(Container)
容器是從鏡像創建的運行實例。它可以被啓動、開始、停止、 刪除。每個容器都是相互隔離的、保證安全的平臺。
- 倉庫(Repository)
倉庫是集中存放鏡像文件的場所。倉庫分爲公開倉庫(Public)和私有倉庫(Private) 兩種形式。
最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。 中國官方鏡像加速