先給大家說下docker概念
Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。
Docker優勢:
更快速的交付和部署(一次創建和配置,可以在任意地方正常運行)
更高效的虛擬化(不需要hypervisor支持,內核級虛擬化)
更輕松的遷移和擴展(在任意平臺移植)
更簡單的管理()
關于docker理解
一、首先是關于虛擬化
虛擬化我們可以簡單的理解為一種資源管理方式。有如下幾種虛擬化的方式:
1.完全虛擬化:對底層硬件實現完全的虛擬。例如:Vmware Workstation
2.部分虛擬化:只對部分硬件資源的虛擬。
3.操作系統級虛擬化:內核通過創建多個虛擬操作系統實例來隔離各個進程。
docker就是屬于操作系統級的虛擬化。
二、其次是對docker的理解
docker的思想來源于集裝箱,試問集裝箱解決了什么問題?
試想,在一艘大船上,可以把貨物規整的擺放起來。并且各種各樣的貨物被集裝箱標準化了,集裝箱和集裝箱之間不會相互影響。那么我就不需要專門運送水果的船和專門運送化學物品的船了。只要這些貨物在集裝箱里裝的好好的,那我就可以用一艘大船把它們都運走。docker就是類似的理念。現在都流行云計算了,云計算就好比大貨輪,而docker就是集裝箱。
Docker的優點:
1.更快速地交付和部署
不同的應用程序可能會有不同的應用環境。比如,.net開發的網站和.php開發的網站所依賴的軟件就不一樣,如果把他們所依賴的軟件都安裝在一個服務器上,就要調試很久,不僅麻煩,還會造成一些諸如IIS和Apache訪問端口沖突這樣的問題。這個時候你就要隔離.net開發的網站和.php開發的網站。常規來講,我們可以在服務器上創建不同的虛擬機并在不同的虛擬機上部署不同的應用,但是虛擬機開銷比較大。此時docker就可以實現虛擬機隔離不同應用的這種功能,并且開銷比虛擬機小,小就意味著省錢。
2.更輕松的遷移和擴展
我們再來舉個簡單的例子。比如你開發的時候用的是Ubuntu,但是運維管理的都是CentOS,運維在把你開發的軟件從開發環境轉移到生產環境的時候就會遇到一些Ubuntu轉CentOS的問題,比如:存在一個特殊版本的數據庫,只支持Ubuntu而不支持CentOS,那么在轉移的過程中就得想辦法解決這樣的問題。但這時候如果有docker,你就可以把開發環境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。
3.更高效的虛擬化和更簡單的管理
在服務器負載方面,如果你單獨開一個虛擬機,那么虛擬機會占用空閑內存的,docker部署的話,這些內存就會被有效的利用起來。而且Docker容器的運行不需要額外的hypervisor支持,它是內核級的虛擬化,因此可以實現更高的性能和效率。
Docker的三個基本概念:
鏡像、容器、倉庫
三、Docker的三個基本概念的詳解
1.鏡像
Docker在英語當中的本意是“物件/碼頭工人”,docker容器的意思為物件的容器。關于鏡像,舉個簡單的例子,我們經常安裝的windows操作系統,先要從網上下載ISO鏡像文件,經解壓后才能安裝和使用。Docker也是一樣,我們要向創建docker容器,就需要創建容器的類似于ISO鏡像文件的docker鏡像文件。
2.容器
關于容器,大家肯定并不陌生。沒錯,docker容器就是來管理不同架構的應用程序的。從本質上來說,容器是從鏡像創建的運行實例。容器與容器之間是相互隔離的,每個容器都是保證安全的平臺。
3.倉庫
倉庫是集中存放鏡像文件的場所,但是在這里要區分兩個概念:倉庫和倉庫服務注冊器。倉庫注冊服務器往往存放著多個倉庫,每個倉庫又包含著多個鏡像。
倉庫分為公開倉庫和私有倉庫,最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括Docker Pool等,可以提供大陸用戶更穩定快速的訪問。
除此之外,用戶可以在本地網絡內創建一個私有倉庫。當用戶創建了自己的鏡像之后就可以使用push命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上pull下來就可以了。
小結:
作為一種新興的虛擬化方式,Docker跟傳統的虛擬化方式相比具有眾多的優勢。
首先,Docker容器的啟動可以在秒級實現,這相比傳統的虛擬機方式要快的多。其次,Docker對系統資源的利用率很高,一臺主機上可以同時運行千個Docker容器。
容器除了運行其中應用外,基本不消耗額外的系統資源,使的應用的性能很高,同時系統開銷盡量小。傳統虛擬機方式運行10個不同的應用就要起10個虛擬機,而Docker只需要啟動10個隔離的應用即可。
以上所述是小編給大家介紹的我對docker的理解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!