什么是Docker
Docker是使用Go語言開發(fā)的一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可以只的鏡像中,然后發(fā)布到任何流行的Linux或Windows機器上,也可以實現(xiàn)虛擬化。
Docker是完全使用沙箱機制的,相互之間不會有任何接口。他在容器的基礎上,進行了進一步的封裝,從文件系統(tǒng)、網(wǎng)絡互聯(lián)到進程隔離等等,極大的簡化了容器的創(chuàng)建和維護。使得Docker技術比虛擬機技術更為輕便、快捷。
而Docker實際上只是宿主機的一個普通的進程,這也是Docker與傳統(tǒng)虛擬化技術的最大不同。
Docker的結構及相關概念
一個完整的Docker有一下幾個部分組成:
1.Docker Client客戶端
? ? ? ? Docker使用客戶端--服務器(C/S)架構模式,使用遠程API來管理和創(chuàng)建Docker容器。
2.Docker Daemon守護進程
? ? ? ? Docker Daemon作為服務端接受來自客戶的請求,并處理這些請求(創(chuàng)建、運行、分發(fā)容器)。客戶端和服務端既可以運行在一個機器上,也可通過socket或者RESTful API來進行通信。
3.Docker Image鏡像
? ? ? ? 由客戶端或者用戶構建出來的VM模板叫做Docker Image鏡像,客戶端可使用命令來從某個鏡像啟動一個或多個容器。
4.DockerContainer容器
? ? ? ? 使用Docker Image鏡像運行出的實體。

為什么要使用Docker
1.環(huán)境一致性。不會出現(xiàn)開發(fā)、測試、生產(chǎn)由于環(huán)境配置不一致導致的各種問題,一次配置多次運行。
2.便捷。更快速的打包、測試以及部署應用程序,并可減少從便攜到部署運行代碼的周期。
3.易用。Docker命令相對來說比較容易上手,無論是部署,運行,還是運維,都可快速上手。