資源描述:
《docker安裝部署文檔》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、一、簡介1、docker簡介Docker提供了一個可以運行你的應用程序的封套(envelope),或者說容器。它原本是dotCloud啟動的一個業(yè)余項目,并在前些時候開源了。它吸引了大量的關(guān)注和討論,導致dotCloud把它重命名到DockerInc。它最初是用Go語言編寫的,它就相當于是加在LXC(LinuXContainers,linux容器)上的管道,允許開發(fā)者在更高層次的概念上工作。Docker擴展了Linux容器(LinuxContainers),或著說LXC,通過一個高層次的API為進程單獨提供了一個輕量級的虛擬環(huán)境。Docker利用了LXC,cgr
2、oups和Linux自己的內(nèi)核。和傳統(tǒng)的虛擬機不同的是,一個Docker容器并不包含一個單獨的操作系統(tǒng),而是基于已有的基礎(chǔ)設(shè)施中操作系統(tǒng)提供的功能來運行的。Docker類似虛擬機的概念,但是與虛擬化技術(shù)的不同點在于下面幾點:1.虛擬化技術(shù)依賴物理CPU和內(nèi)存,是硬件級別的;而docker構(gòu)建在操作系統(tǒng)上,利用操作系統(tǒng)的containerization技術(shù),所以docker甚至可以在虛擬機上運行。2.虛擬化系統(tǒng)一般都是指操作系統(tǒng)鏡像,比較復雜,稱為“系統(tǒng)”;而docker開源而且輕量,稱為“容器”,單個容器適合部署少量應用,比如部署一個redis、一個memcac
3、hed。3.傳統(tǒng)的虛擬化技術(shù)使用快照來保存狀態(tài);而docker在保存狀態(tài)上不僅更為輕便和低成本,而且引入了類似源代碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。4.傳統(tǒng)的虛擬化技術(shù)在構(gòu)建系統(tǒng)的時候較為復雜,需要大量的人力;而docker可以通過Dockfile來構(gòu)建整個容器,重啟和構(gòu)建速度很快。更重要的是Dockfile可以手動編寫,這樣應用程序開發(fā)人員可以通過發(fā)布Dockfile來指導系統(tǒng)環(huán)境和依賴,這樣對于持續(xù)交付十分有利。5.Dockerfile可以基于已經(jīng)構(gòu)建好的容器鏡像,創(chuàng)建新容器。Dockerfile可以通過社區(qū)分享和下載,有利于該技術(shù)的推
4、廣。Docker會像一個可移植的容器引擎那樣工作。它把應用程序及所有程序的依賴環(huán)境打包到一個虛擬容器中,這個虛擬容器可以運行在任何一種Linux服務(wù)器上。這大大地提高了程序運行的靈活性和可移植性,無論需不需要許可、是在公共云還是私密云、是不是裸機環(huán)境等等。Docker也是一個云計算平臺,它利用Linux的LXC、AUFU、Go語言、cgroup實現(xiàn)了資源的獨立,可以很輕松的實現(xiàn)文件、資源、網(wǎng)絡(luò)等隔離,其最終的目標是實現(xiàn)類似PaaS平臺的應用隔離。Docker由下面這些組成:1.Docker服務(wù)器守護程序(serverdaemon),用于管理所有的容器。2.Doc
5、ker命令行客戶端,用于控制服務(wù)器守護程序。3.Docker鏡像:查找和瀏覽docker容器鏡像。2、docker特性文件系統(tǒng)隔離:每個進程容器運行在完全獨立的根文件系統(tǒng)里。資源隔離:可以使用cgroup為每個進程容器分配不同的系統(tǒng)資源,例如CPU和內(nèi)存。網(wǎng)絡(luò)隔離:每個進程容器運行在自己的網(wǎng)絡(luò)命名空間里,擁有自己的虛擬接口和IP地址。寫時復制:采用寫時復制方式創(chuàng)建根文件系統(tǒng),這讓部署變得極其快捷,并且節(jié)省內(nèi)存和硬盤空間。日志記錄:Docker將會收集和記錄每個進程容器的標準流(stdout/stderr/stdin),用于實時檢索或批量檢索。變更管理:容器文件系
6、統(tǒng)的變更可以提交到新的映像中,并可重復使用以創(chuàng)建更多的容器。無需使用模板或手動配置。交互式Shell:Docker可以分配一個虛擬終端并關(guān)聯(lián)到任何容器的標準輸入上,例如運行一個一次性交互shell。3兩個基礎(chǔ)概念images與containerContainer和Image在Docker的世界里,Image是指一個只讀的層(Layer),這里的層是AUFS里的概念,最直觀的方式就是看一下docker官方給出的圖:Docker使用了一種叫AUFS的文件系統(tǒng),這種文件系統(tǒng)可以讓你一層一層地疊加修改你的文件,最底下的文件系統(tǒng)是只讀的,如果需要修改文件,AUFS會增加一
7、個可寫的層(Layer),這樣有很多好處,例如不同的Container可以共享底層的只讀文件系統(tǒng)(同一個Kernel),使得你可以跑N多個Container而不至于你的硬盤被擠爆了!這個只讀的層就是Image!而如你所看到的,一個可寫的層就是Container。那Image和Container的區(qū)別是什么?很簡單,他們的區(qū)別僅僅是一個是只讀的層,一個是可寫的層,你可以使用dockercommit命令,將你的Container變成一個Image,也就是提交你所運行的Container的修改內(nèi)容,變成一個新的只讀的Image,這非常類似于gitcommit命令。二、
8、Centos6安裝doc