談?wù)勎覍?duì)docker的理解
先給大家說下docker概念
Docker是一個(gè)開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測(cè)試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺(tái)。
Docker優(yōu)勢(shì):
更快速的交付和部署(一次創(chuàng)建和配置,可以在任意地方正常運(yùn)行)
更高效的虛擬化(不需要hypervisor支持,內(nèi)核級(jí)虛擬化)
更輕松的遷移和擴(kuò)展(在任意平臺(tái)移植)
更簡(jiǎn)單的管理()
關(guān)于docker理解
一、首先是關(guān)于虛擬化
虛擬化我們可以簡(jiǎn)單的理解為一種資源管理方式。有如下幾種虛擬化的方式:
1.完全虛擬化:對(duì)底層硬件實(shí)現(xiàn)完全的虛擬。例如:Vmware Workstation
2.部分虛擬化:只對(duì)部分硬件資源的虛擬。
3.操作系統(tǒng)級(jí)虛擬化:內(nèi)核通過創(chuàng)建多個(gè)虛擬操作系統(tǒng)實(shí)例來隔離各個(gè)進(jìn)程。
docker就是屬于操作系統(tǒng)級(jí)的虛擬化。
二、其次是對(duì)docker的理解
docker的思想來源于集裝箱,試問集裝箱解決了什么問題?
試想,在一艘大船上,可以把貨物規(guī)整的擺放起來。并且各種各樣的貨物被集裝箱標(biāo)準(zhǔn)化了,集裝箱和集裝箱之間不會(huì)相互影響。那么我就不需要專門運(yùn)送水果的船和專門運(yùn)送化學(xué)物品的船了。只要這些貨物在集裝箱里裝的好好的,那我就可以用一艘大船把它們都運(yùn)走。docker就是類似的理念?,F(xiàn)在都流行云計(jì)算了,云計(jì)算就好比大貨輪,而docker就是集裝箱。
Docker的優(yōu)點(diǎn):
1.更快速地交付和部署
不同的應(yīng)用程序可能會(huì)有不同的應(yīng)用環(huán)境。比如,.net開發(fā)的網(wǎng)站和.php開發(fā)的網(wǎng)站所依賴的軟件就不一樣,如果把他們所依賴的軟件都安裝在一個(gè)服務(wù)器上,就要調(diào)試很久,不僅麻煩,還會(huì)造成一些諸如IIS和Apache訪問端口沖突這樣的問題。這個(gè)時(shí)候你就要隔離.net開發(fā)的網(wǎng)站和.php開發(fā)的網(wǎng)站。常規(guī)來講,我們可以在服務(wù)器上創(chuàng)建不同的虛擬機(jī)并在不同的虛擬機(jī)上部署不同的應(yīng)用,但是虛擬機(jī)開銷比較大。此時(shí)docker就可以實(shí)現(xiàn)虛擬機(jī)隔離不同應(yīng)用的這種功能,并且開銷比虛擬機(jī)小,小就意味著省錢。
2.更輕松的遷移和擴(kuò)展
我們?cè)賮砼e個(gè)簡(jiǎn)單的例子。比如你開發(fā)的時(shí)候用的是Ubuntu,但是運(yùn)維管理的都是CentOS,運(yùn)維在把你開發(fā)的軟件從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境的時(shí)候就會(huì)遇到一些Ubuntu轉(zhuǎn)CentOS的問題,比如:存在一個(gè)特殊版本的數(shù)據(jù)庫,只支持Ubuntu而不支持CentOS,那么在轉(zhuǎn)移的過程中就得想辦法解決這樣的問題。但這時(shí)候如果有docker,你就可以把開發(fā)環(huán)境直接封裝轉(zhuǎn)移給運(yùn)維,運(yùn)維直接部署你給他的docker就可以了。而且部署速度快。
3.更高效的虛擬化和更簡(jiǎn)單的管理
在服務(wù)器負(fù)載方面,如果你單獨(dú)開一個(gè)虛擬機(jī),那么虛擬機(jī)會(huì)占用空閑內(nèi)存的,docker部署的話,這些內(nèi)存就會(huì)被有效的利用起來。而且Docker容器的運(yùn)行不需要額外的hypervisor支持,它是內(nèi)核級(jí)的虛擬化,因此可以實(shí)現(xiàn)更高的性能和效率。
Docker的三個(gè)基本概念:
鏡像、容器、倉庫
三、Docker的三個(gè)基本概念的詳解
1.鏡像
Docker在英語當(dāng)中的本意是“物件/碼頭工人”,docker容器的意思為物件的容器。關(guān)于鏡像,舉個(gè)簡(jiǎn)單的例子,我們經(jīng)常安裝的windows操作系統(tǒng),先要從網(wǎng)上下載ISO鏡像文件,經(jīng)解壓后才能安裝和使用。Docker也是一樣,我們要向創(chuàng)建docker容器,就需要?jiǎng)?chuàng)建容器的類似于ISO鏡像文件的docker鏡像文件。
2.容器
關(guān)于容器,大家肯定并不陌生。沒錯(cuò),docker容器就是來管理不同架構(gòu)的應(yīng)用程序的。從本質(zhì)上來說,容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。容器與容器之間是相互隔離的,每個(gè)容器都是保證安全的平臺(tái)。
3.倉庫
倉庫是集中存放鏡像文件的場(chǎng)所,但是在這里要區(qū)分兩個(gè)概念:倉庫和倉庫服務(wù)注冊(cè)器。倉庫注冊(cè)服務(wù)器往往存放著多個(gè)倉庫,每個(gè)倉庫又包含著多個(gè)鏡像。
倉庫分為公開倉庫和私有倉庫,最大的公開倉庫是 Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。國(guó)內(nèi)的公開倉庫包括Docker Pool等,可以提供大陸用戶更穩(wěn)定快速的訪問。
除此之外,用戶可以在本地網(wǎng)絡(luò)內(nèi)創(chuàng)建一個(gè)私有倉庫。當(dāng)用戶創(chuàng)建了自己的鏡像之后就可以使用push命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺(tái)機(jī)器上使用這個(gè)鏡像時(shí)候,只需要從倉庫上pull下來就可以了。
小結(jié):
作為一種新興的虛擬化方式,Docker跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢(shì)。
首先,Docker容器的啟動(dòng)可以在秒級(jí)實(shí)現(xiàn),這相比傳統(tǒng)的虛擬機(jī)方式要快的多。其次,Docker對(duì)系統(tǒng)資源的利用率很高,一臺(tái)主機(jī)上可以同時(shí)運(yùn)行千個(gè)Docker容器。
容器除了運(yùn)行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,使的應(yīng)用的性能很高,同時(shí)系統(tǒng)開銷盡量小。傳統(tǒng)虛擬機(jī)方式運(yùn)行10個(gè)不同的應(yīng)用就要起10個(gè)虛擬機(jī),而Docker只需要啟動(dòng)10個(gè)隔離的應(yīng)用即可。
以上所述是小編給大家介紹的我對(duì)docker的理解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
docker啟動(dòng)mysql及-e MYSQL_ROOT_PASSWORD=my-secret-pw問題解決
本文主要介紹了docker啟動(dòng)mysql及-e MYSQL_ROOT_PASSWORD=my-secret-pw問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
docker 設(shè)置windows存儲(chǔ)路徑的操作
這篇文章主要介紹了docker 設(shè)置windows存儲(chǔ)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
使用Docker compose編排Laravel應(yīng)用的方法
本篇文章主要介紹了使用Docker compose編排Laravel應(yīng)用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Docker本地部署Firefox火狐瀏覽器并遠(yuǎn)程訪問的流程
在Docker中打開Firefox意味著我們將在一個(gè)Docker容器中運(yùn)行Firefox瀏覽器,下面是一個(gè)簡(jiǎn)單的示例,演示如何在Docker中打開Firefox,本次實(shí)踐部署環(huán)境為本地環(huán)境,感興趣的朋友一起看看吧2023-11-11
Docker?+?jenkins項(xiàng)目打包鏡像部署詳細(xì)步驟(親測(cè)有效)
這篇文章主要介紹了Docker?+?jenkins項(xiàng)目打包鏡像部署的相關(guān)資料,包括Jenkins的安裝、項(xiàng)目搭建、Dockerfile的設(shè)置以及遇到的一些問題和解決方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
使用Docker Compose 實(shí)現(xiàn)nginx負(fù)載均衡的方法步驟
這篇文章主要介紹了使用Docker Compose 實(shí)現(xiàn)nginx負(fù)載均衡的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
Docker搭建Zookeeper&Kafka集群的實(shí)現(xiàn)
這篇文章主要介紹了Docker搭建Zookeeper&Kafka集群的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
解決Docker鏡像拉取超時(shí)及優(yōu)化網(wǎng)絡(luò)配置的方法(failed to do request
在使用 Docker 構(gòu)建和部署應(yīng)用時(shí),拉取鏡像是一個(gè)關(guān)鍵的步驟,然而,在一些網(wǎng)絡(luò)環(huán)境中,特別是企業(yè)內(nèi)部網(wǎng)或受限網(wǎng)絡(luò)環(huán)境中,可能會(huì)遇到 Docker 鏡像拉取失敗或超時(shí)的問題,這篇博客將詳細(xì)探討如何應(yīng)對(duì) Docker 鏡像拉取超時(shí)的問題,需要的朋友可以參考下2024-11-11

