Docker學習

什麼是Docker?

基於Go語言進行開發實現,基於Linux內核的cgroup、namespace以及AUFS類的Union FS等技術,對進程進行封裝隔離,屬於操做系統層面的虛擬化技術。因爲隔離的進程獨立於宿主和其餘進程隔離的進程,所以也稱爲容器。服務器

相比於傳統虛擬機的優點

1.更高效的利用系統資源測試

容器無需進行硬件虛擬以及運行完整操做系統等額外開銷,Docker對系統資源的利用率更高。應用執行速度、內存損耗或者文件存儲速度,都要比傳統虛擬機技術更高效。spa

2.更快速的啓動時間操作系統

Docker直接運行於宿主內核,無需啓動完整的操做系統,能夠作到秒級、甚至毫秒級的啓動時間,大大節約開發、測試、部署的時間。進程

3.一致的運行環境內存

Docker提供了除內核外完整的運行時環境,確保了運行環境一致性。資源

4.持續交付和部署開發

使用Docker能夠經過定製應用鏡像來實現持續集成、持續交付、部署。部署

5.更輕鬆的遷移虛擬機

Docker確保了執行環境的一致性,使得應用的遷移更加容易。

6.更輕鬆的維護和擴展

使用的分層存儲以及鏡像技術,使得應用重複部分的複用更加容易,也使得應用的維護更新更加簡單,基於基礎鏡像進一步擴展鏡像也變得很是簡單。此外,還有開源項目團隊維護的官方鏡像,大大下降了應用服務的鏡像製做成本。

對比總結

基本概念

鏡像(Image)

鏡像至關於一個root文件系統,做爲一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些運行時準備的一些配置參數。鏡像不包含任何動態數據,其內容在構建以後也不會被改變。

鏡像是虛擬概念,其實際體現並不是由一個文件組成,而是由一組文件系統組成,或者說由多層文件系統聯合組成。鏡像分層存儲,分層構建,前一層是後一層的基礎,這使得鏡像的複用、定製變得容易。

容器(Container)

鏡像與容器的關係,相似於類和實例。鏡像是靜態的定義,容器是鏡像運行時的實體。

容器的實質是進程,但與直接在宿主執行的進程不一樣,容器進程運行於屬於本身的獨立的命名空間。

倉庫(Repository)

鏡像構建完成後,若是須要在其餘服務器上使用這個鏡像,咱們就須要一個集中的存儲、分發鏡像的服務,Docker Registry就是這樣的服務。

<倉庫名>:<標籤>標籤經常使用於對應該軟件的各個版本。

相關文章
相關標籤/搜索