教你十分鐘學(xué)會(huì)用docker部署微服務(wù)!
??一、Docker的優(yōu)點(diǎn)如下:
??1. 簡(jiǎn)化程序
??Docker 讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,便可以實(shí)現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開(kāi)發(fā)者可以直接將自己的成果放入Docker中進(jìn)行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢(shì),過(guò)去需要用數(shù)天乃至數(shù)周的 任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。
??2. 避免選擇恐懼癥
??如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結(jié)!比如 Docker 鏡像;Docker 鏡像中包含了運(yùn)行環(huán)境和配置,所以 Docker 可以簡(jiǎn)化部署多種應(yīng)用實(shí)例工作。比如 Web 應(yīng)用、后臺(tái)應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用、大數(shù)據(jù)應(yīng)用比如 Hadoop 集群、消息隊(duì)列等等都可以打包成一個(gè)鏡像部署。
??3. 節(jié)省開(kāi)支
??一方面,云計(jì)算時(shí)代到來(lái),使開(kāi)發(fā)者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價(jià)格的思維定勢(shì)。Docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問(wèn)題,也改變了虛擬化的方式。
??二、Docker架構(gòu)
??1、Docker daemon( Docker守護(hù)進(jìn)程)
??Docker daemon是一個(gè)運(yùn)行在宿主機(jī)( DOCKER-HOST)的后臺(tái)進(jìn)程??赏ㄟ^(guò) Docker客戶(hù)端與之通信。
??2、Client( Docker客戶(hù)端)
??Docker客戶(hù)端是 Docker的用戶(hù)界面,它可以接受用戶(hù)命令和配置標(biāo)識(shí),并與 Docker daemon通信。圖中, docker build等都是 Docker的相關(guān)命令。
??3、Images( Docker鏡像)
??Docker鏡像是一個(gè)只讀模板,它包含創(chuàng)建 Docker容器的說(shuō)明。它和系統(tǒng)安裝光盤(pán)有點(diǎn)像,使用系統(tǒng)安裝光盤(pán)可以安裝系統(tǒng),同理,使用Docker鏡像可以運(yùn)行 Docker鏡像中的程序。
??4、Container(容器)
??容器是鏡像的可運(yùn)行實(shí)例。鏡像和容器的關(guān)系有點(diǎn)類(lèi)似于面向?qū)ο笾校?lèi)和對(duì)象的關(guān)系。可通過(guò) Docker API或者 CLI命令來(lái)啟停、移動(dòng)、刪除容器。
??5、Registry
??Docker Registry是一個(gè)集中存儲(chǔ)與分發(fā)鏡像的服務(wù)。構(gòu)建完 Docker鏡像后,就可在當(dāng)前宿主機(jī)上運(yùn)行。但如果想要在其他機(jī)器上運(yùn)行這個(gè)鏡像,就需要手動(dòng)復(fù)制。此時(shí)可借助 Docker Registry來(lái)避免鏡像的手動(dòng)復(fù)制。
??一個(gè) Docker Registry可包含多個(gè) Docker倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)可包含多個(gè)鏡像標(biāo)簽,每個(gè)標(biāo)簽對(duì)應(yīng)一個(gè) Docker鏡像。這跟 Maven的倉(cāng)庫(kù)有點(diǎn)類(lèi)似,如果把 Docker Registry比作 Maven倉(cāng)庫(kù)的話(huà),那么 Docker倉(cāng)庫(kù)就可理解為某jar包的路徑,而鏡像標(biāo)簽則可理解為jar包的版本號(hào)。
??三、Docker安裝
??Docker 是一個(gè)開(kāi)源的商業(yè)產(chǎn)品,有兩個(gè)版本:社區(qū)版(Community Edition,縮寫(xiě)為 CE)和企業(yè)版(Enterprise Edition,縮寫(xiě)為 EE)。企業(yè)版包含了一些收費(fèi)服務(wù),個(gè)人開(kāi)發(fā)者一般用不到。
??四、Docker常用命令
??(一) 鏡像相關(guān)命令
??1、搜索鏡像
??可使用 docker search命令搜索存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟件的地方,類(lèi)似maven的中央倉(cāng)庫(kù))中的鏡像。執(zhí)行該命令后, Docker就會(huì)在Docker Hub中搜索含有 java這個(gè)關(guān)鍵詞的鏡像倉(cāng)庫(kù)。
??2、下載鏡像
??使用命令docker pull命令即可從 Docker Registry上下載鏡像,執(zhí)行該命令后,Docker會(huì)從 Docker Hub中的 java倉(cāng)庫(kù)下載最新版本的 Java鏡像。如果要下載指定版本則在java后面加冒號(hào)指定版本。
??3、列出鏡像
??使用 docker images命令即可列出已下載的鏡像
??4、刪除本地鏡像
??使用 docker rmi命令即可刪除指定鏡像
??RUN命令在 image 文件的構(gòu)建階段執(zhí)行,執(zhí)行結(jié)果都會(huì)打包進(jìn)入 image 文件;CMD命令則是在容器啟動(dòng)后執(zhí)行。另外,一個(gè) Dockerfile 可以包含多個(gè)RUN命令,但是只能有一個(gè)CMD命令。指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否則它會(huì)覆蓋CMD命令。小伙伴們要想獲得更多docker部署的內(nèi)容,請(qǐng)關(guān)注新網(wǎng)!
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科