Docker的那些事兒—Docker簡介(1)

weixin_34320159發表於2018-02-28

什麼是Docker?

Docker官網是這麼描述的: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公司內部的一個業餘專案。它基於Google公司推出的Go語言實現。專案後來加入了Linux基金會,遵從Apache 2.0協議,專案程式碼在GitHub上進行維護。Docker自開源後受到廣泛的關注和討論,以至於dotCloud公司後來都改名為Docker Inc。Docker專案的目標是實現輕量級的作業系統虛擬化解決方案。Docker的基礎是Linux容器(LXC)等技術。在LXC的基礎上Docker進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作Docker的容器就像操作一個快速輕量級的虛擬機器一樣簡單。

下圖比較了Docker容器和傳統虛擬機器的不同之處,容器是在作業系統層面上實現虛擬化,直接複用本地主機的作業系統,而傳統虛擬機器則是在硬體層面實現。說的直白一點就是容器虛擬化的是作業系統,而虛擬機器虛擬化的是硬體。


10839544-267f5b888b98935a.png
10839544-ef560e140f9e9d15.png

為什麼要用Docker?

作為一種新興的虛擬化方式,Docker跟傳統的虛擬化方式相比具有眾多的優勢。首先,Docker容器的啟動可以在秒級實現,這相比傳統的虛擬機器方式要快得多。其次,Docker對系統資源的利用率很高,一臺主機上可以同時執行數千個 Docker容器。容器除了執行其中應用外,基本不消耗額外的系統資源,使得應用的效能很高,同時系統的開銷儘量小。傳統虛擬機器方式執行10個不同的應用就要起10個虛擬機器,而Docker只需要啟動10個隔離的應用即可。具體說來,Docker 在如下幾個方面具有較大的優勢:

更快速的交付和部署

對開發和運維(devops)人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。開發者可以使用一個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署程式碼。Docker可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。Docker容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。

更高效的虛擬化

Docker容器的執行不需要額外的hypervisor支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。

更輕鬆的遷移和擴充套件

Docker 容器幾乎可以在任意的平臺上執行,包括物理機、虛擬機器、公有云、私有云、個人電腦、伺服器等。這種相容性可以讓使用者把一個應用程式從一個平臺直接遷移到另外一個。

更簡單的管理

使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。

對比傳統虛擬機器總結

特性                    容器                                虛擬機器

啟動                    秒級                                分鐘級

硬碟                    一般為MB                        一般為GB

效能                    接近原生                          弱於

系統支援            單機支援上千個容器        一般幾十個

怎樣學習Docker?

學習docker的途徑很多,網路上關於docker資源豐富且比較雜

1.    本教程將指導你一步步的學習docker的架構、映象、容器、網路、儲存等

2.    Docker官網



下一篇:Docker的那些事兒—環境搭建(2)


10839544-2e28a2b29b18910f

相關文章