×

教你十分鐘學(xué)會(huì)用docker部署微服務(wù)!

分類(lèi):虛機(jī)資訊 編輯: 瀏覽量:100
2021-07-22 17:19:01
??Docker是一個(gè)開(kāi)源的容器引擎,它有助于更快地交付應(yīng)用。 Docker可將應(yīng)用程序和基礎(chǔ)設(shè)施層隔離,并且能將基礎(chǔ)設(shè)施當(dāng)作程序一樣進(jìn)行管理。使用 Docker可更快地打包、測(cè)試以及部署應(yīng)用程序,并可以縮短從編寫(xiě)到部署運(yùn)行代碼的周期。2013年發(fā)布至今, Docker 一直廣受矚目,被認(rèn)為可能會(huì)改變軟件行業(yè)。但是,許多人并不清楚 Docker 到底是什么,要解決什么問(wèn)題,好處又在哪里?今天就來(lái)詳細(xì)解釋?zhuān)瑤椭蠹依斫馑?,教你如何將它用于日常開(kāi)發(fā)并用其部署微服務(wù)。下面就由新網(wǎng)小編和大家講一講用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í)百科

免費(fèi)咨詢(xún)獲取折扣

Loading