Less Interests
More Interest
官網(wǎng)
www.docker-cn.com Docker中文網(wǎng)站
www.docker.com Docker官網(wǎng)
什么是Docker
解決了運(yùn)行環(huán)境和配置問(wèn)題的容器軟件(容器虛擬化技術(shù))
為什么會(huì)出現(xiàn)
通常開(kāi)發(fā)結(jié)束將代碼提交給運(yùn)維,再由運(yùn)維部署,但是通常運(yùn)維和開(kāi)發(fā)的環(huán)境或者配置文件不一致,導(dǎo)致項(xiàng)目不能運(yùn)行。可否將開(kāi)發(fā)的環(huán)境和配置整體打包給運(yùn)維,docker帶環(huán)境安裝。直接將代碼、環(huán)境和配置整體打包給運(yùn)維。
Docker理念
Docker是基于Go語(yǔ)言實(shí)現(xiàn)的云開(kāi)源項(xiàng)目
主要目標(biāo)是:“Build,Ship and Run Any App , Anywhere”
一次封裝,到處運(yùn)行:只需要一次配置環(huán)境,換到別的機(jī)器就可一鍵部署好,簡(jiǎn)化了操作,解決中途環(huán)境配置等錯(cuò)誤
虛擬機(jī)技術(shù)(virtual machine)
帶環(huán)境安裝的一種解決方案,可以在一種操作系統(tǒng)里面運(yùn)行另一種操作系統(tǒng),對(duì)于底層系統(tǒng)來(lái)說(shuō)。虛擬機(jī)就是一個(gè)文件,虛擬機(jī)就是完完全全模擬一臺(tái)機(jī)器,包括軟件、硬件。資源占用多,啟動(dòng)慢。
容器虛擬技術(shù)
由于虛擬機(jī)存在很多缺點(diǎn),Linux發(fā)展出另一種虛擬技術(shù):Linux容器(Linux Container),只需要將軟件運(yùn)行需要的資源打包到一個(gè)隔離容器中,不需要捆綁一整套操作系統(tǒng),容器內(nèi)沒(méi)有自己的內(nèi)核,依賴于宿主的內(nèi)核。不僅可以保證軟件的運(yùn)行,而且更加輕量化(centos鏡像僅200M左右)。
Docker組成
Docker三要素
鏡像(Image):一個(gè)只讀模板,可以用來(lái)創(chuàng)建Docker容器,類(lèi)比Java中的類(lèi)。
容器(Container):Docker利用容器運(yùn)行一個(gè)或者一組應(yīng)用,容器是由鏡像創(chuàng)建的實(shí)例。每個(gè)容器都是相互獨(dú)立,各不干擾的平臺(tái),類(lèi)比Java的實(shí)例對(duì)象。
倉(cāng)庫(kù)(Repository):集中存放鏡像文件的場(chǎng)所,倉(cāng)庫(kù)分為公開(kāi)倉(cāng)庫(kù)(Public)和私用倉(cāng)庫(kù)(Private),最大的公開(kāi)倉(cāng)庫(kù)是Docker Hub(https://hub.docker.com/)。
Docker本身是一個(gè)容器運(yùn)行載體或者稱為管理引擎。我們把應(yīng)用程序和依賴配置打包好形成一個(gè)可交付的運(yùn)行環(huán)境,這個(gè)打包好的環(huán)境就是鏡像,只有通過(guò)鏡像才能生成Docker容器。image可以看作是容器的模板。而倉(cāng)庫(kù)只是存放了一堆鏡像的地方。