Docker 簡介
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。
Docker 官網(wǎng):http://www.docker.com/ Docker 官方文檔:https://docs.docker.com/ Docker Github 地址:https://github.com/docker/docker Docker 倉庫:https://hub.docker.com/ Docker 中文社區(qū):http://www.docker.org.cn/book/docker Docker 應(yīng)用場景:https://www.zhihu.com/question/22969309
1.1、什么是Docker?
Docker是基于Go語言實(shí)現(xiàn)的云開源項(xiàng)目,誕生于2013年初,最初發(fā)起者是dotcloud公司。
Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕量級的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺。docker中文社區(qū)Docker的主要目標(biāo)是'Build,Ship and Run Any App Anywhere',即通過對應(yīng)用組件的封裝(Packing)、分發(fā)(Distribution)、部署(Deployment)、運(yùn)行(Runtime)等生命周期的管理,達(dá)到應(yīng)用組件級別的“一次封裝,多次運(yùn)行”。這里的應(yīng)用組件,既可以是一個Web應(yīng)用,也可以是一套數(shù)據(jù)庫服務(wù),甚至是一個操作系統(tǒng)或編輯器。1.2、為什么要使用Docker?
Docker在正確的地點(diǎn),正確的時間順應(yīng)了正確的趨勢--即高效的構(gòu)建應(yīng)用。
更快速地的交付和部署。
更高效的資源利用
更輕松的更新部署
更簡單的更新管理
Docker與虛擬機(jī)比較
Docker容器很快,啟動和停止可以秒級實(shí)現(xiàn),相比傳統(tǒng)的虛擬機(jī)方式快很多
Docker容器對系統(tǒng)資源需求很少,一臺主機(jī)上面可以運(yùn)行數(shù)千個Docker容器 Docker通過類似Git的操作來方便用戶獲取、分布和更新應(yīng)用鏡像,指令簡單,學(xué)習(xí)成本較低 Docker通過Dockerfile配置文件來支持靈活的自動化創(chuàng)建和部署機(jī)制,提高工作效率1.3、虛擬化與Docker
虛擬化是一個通用的概念,在不通領(lǐng)域有著不同的理解。在計算機(jī)領(lǐng)域,一般是指計算虛擬化(Computing Virtualization),或服務(wù)器虛擬化。
虛擬化的核心是對資源進(jìn)行抽象,目標(biāo)往往是為了在同一主機(jī)上運(yùn)行多個操作系統(tǒng)或應(yīng)用,從而提高系統(tǒng)資源的利用率,同時帶來降低成本,方便管理和容錯容災(zāi)。
虛擬化可分為基于硬件的虛擬化和基于軟件的虛擬化。基于軟件的虛擬化又分為應(yīng)用虛擬化和平臺虛擬化。平臺虛擬化又細(xì)分如下幾個子類:
完全虛擬化。虛擬機(jī)模擬完整的底層硬件環(huán)境和特權(quán)指令的執(zhí)行過程,客戶操作系統(tǒng)無需進(jìn)行修改。例如VMware Workstation,VirtulBox,QEMU等
硬件輔助虛擬化。利用硬件輔助支持處理敏感指令來實(shí)現(xiàn)完全虛擬化的功能,客戶端操作系統(tǒng)無需更改,例如Xen,KVM等 部分虛擬化。只針對部分硬件資源進(jìn)行虛擬化,客戶端操作系統(tǒng)需要進(jìn)行更改。新聞熱點(diǎn)
疑難解答
圖片精選