Docker簡介

2013年發布至今,Docker 一直廣受矚目,被認為可能會改變軟件行業。
但是,許多人并不清楚 Docker 到底是什么,要解決什么問題,好處又在哪里?今天就來詳細解釋,幫助大家理解它,還帶有簡單易懂的實例,教你如何將它用于日常開發。
 

 
Docker簡介
Docker是一個開源的容器引擎,它有助于更快地交付應用。 Docker可將應用程序和基礎設施層隔離,并且能將基礎設施當作程序一樣進行管理。使用 Docker可更快地打包、測試以及部署應用程序,并可以縮短從編寫到部署運行代碼的周期。
 
Docker的優點如下:

1、簡化程序
Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。

2、避免選擇恐懼癥
如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像; Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。

3、節省開支
一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

Docker的架構


Docker daemon( Docker守護進程)
Docker daemon是一個運行在宿主機( DOCKER-HOST)的后臺進程??赏ㄟ^Docker客戶端與之通信。
 
Client( Docker客戶端)
Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識,并與 Docker daemon通信。圖中, docker build等都是 Docker的相關命令。
 
Images( Docker鏡像)
Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤可以安裝系統,同理,使用Docker鏡像可以運行 Docker鏡像中的程序。
 
Container(容器)
容器是鏡像的可運行實例。鏡像和容器的關系有點類似于面向對象中,類和對象的關系??赏ㄟ^ Docker API或者 CLI命令來啟停、移動、刪除容器。
 
Registry
Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時可借助 Docker Registry來避免鏡像的手動復制。
一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry 比作 Maven倉庫的話,那么 Docker倉庫就可理解為某jar包的路徑,而鏡像標簽則可理解為jar包的版本號。