什么是Docker?
Docker官網(wǎng)是這么描述的:WHAT IS DOCKER? Docker is the world’s leading software containerization platform. Docker is the company driving the container movement and the only container platform provider to address every application across the hybrid cloud. Today’s businesses are under pressure to digitally transform but are constrained by existing applications and infrastructure while rationalizing an increasingly diverse portfolio of clouds, datacenters and application architectures. Docker enables true independence between applications and infrastructure and developers and IT ops to unlock their potential and creates a model for better collaboration and innovation.
Docker是一個開源項目,誕生于2013年初,最初是dotCloud公司內(nèi)部的一個業(yè)余項目。它基于Google公司推出的Go語言實現(xiàn)。項目后來加入了Linux基金會,遵從Apache 2.0協(xié)議,項目代碼在GitHub上進行維護。Docker自開源后受到廣泛的關(guān)注和討論,以至于dotCloud公司后來都改名為Docker Inc。Docker項目的目標是實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。Docker的基礎(chǔ)是Linux容器(LXC)等技術(shù)。在LXC的基礎(chǔ)上Docker進行了進一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡便。用戶操作Docker的容器就像操作一個快速輕量級的虛擬機一樣簡單。
下圖比較了Docker容器和傳統(tǒng)虛擬機的不同之處,容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化,直接復(fù)用本地主機的操作系統(tǒng),而傳統(tǒng)虛擬機則是在硬件層面實現(xiàn)。說的直白一點就是容器虛擬化的是操作系統(tǒng),而虛擬機虛擬化的是硬件。


為什么要用Docker?
作為一種新興的虛擬化方式,Docker跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。首先,Docker容器的啟動可以在秒級實現(xiàn),這相比傳統(tǒng)的虛擬機方式要快得多。其次,Docker對系統(tǒng)資源的利用率很高,一臺主機上可以同時運行數(shù)千個 Docker容器。容器除了運行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,使得應(yīng)用的性能很高,同時系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機方式運行10個不同的應(yīng)用就要起10個虛擬機,而Docker只需要啟動10個隔離的應(yīng)用即可。具體說來,Docker 在如下幾個方面具有較大的優(yōu)勢:
更快速的交付和部署
對開發(fā)和運維(devops)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運行。開發(fā)者可以使用一個標準的鏡像來構(gòu)建一套開發(fā)容器,開發(fā)完成之后,運維人員可以直接使用這個容器來部署代碼。Docker可以快速創(chuàng)建容器,快速迭代應(yīng)用程序,并讓整個過程全程可見,使團隊中的其他成員更容易理解應(yīng)用程序是如何創(chuàng)建和工作的。Docker容器很輕很快!容器的啟動時間是秒級的,大量地節(jié)約開發(fā)、測試、部署的時間。
更高效的虛擬化
Docker容器的運行不需要額外的hypervisor支持,它是內(nèi)核級的虛擬化,因此可以實現(xiàn)更高的性能和效率。
更輕松的遷移和擴展
Docker 容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、個人電腦、服務(wù)器等。這種兼容性可以讓用戶把一個應(yīng)用程序從一個平臺直接遷移到另外一個。
更簡單的管理
使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發(fā)和更新,從而實現(xiàn)自動化并且高效的管理。
對比傳統(tǒng)虛擬機總結(jié)
特性? ? ? ? ? ? ? ? ? ? 容器? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 虛擬機
啟動? ? ? ? ? ? ? ? ? ? 秒級? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分鐘級
硬盤? ? ? ? ? ? ? ? ? ? 一般為MB? ? ? ? ? ? ? ? ? ? ? ? 一般為GB
性能? ? ? ? ? ? ? ? ? ? 接近原生? ? ? ? ? ? ? ? ? ? ? ? ? 弱于
系統(tǒng)支持? ? ? ? ? ? 單機支持上千個容器? ? ? ? 一般幾十個
怎樣學習Docker?
學習docker的途徑很多,網(wǎng)絡(luò)上關(guān)于docker資源豐富且比較雜
1.? ? 本教程將指導你一步步的學習docker的架構(gòu)、鏡像、容器、網(wǎng)絡(luò)、存儲等
2.? ? Docker官網(wǎng)