您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么使用Docker部署第一個應(yīng)用程序”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
通常,開發(fā)工作流包括如下幾點:
1、首先創(chuàng)建docker鏡像,為應(yīng)用程序的每個組件創(chuàng)建和測試單個容器。
2、將容器和所支持的基礎(chǔ)設(shè)施組裝成一個完整的應(yīng)用程序,可以用docker stack file或者kubernetes的yaml來實現(xiàn)。
3、測試、共享和部署完整的容器化應(yīng)用程序。
配置
1、從github克隆用于演示的示例項目。
git clone -b v1 https://github.com/docker-training/node-bulletin-board
cd node-bulletin-board/bulletin-board-app
這是一個簡單的公告板應(yīng)用程序,用node.js編寫。在這個例子中,讓我們假設(shè)是您編寫了這個應(yīng)用程序,現(xiàn)在正試圖將其容器化部署起來,目錄結(jié)構(gòu)如圖1.1所示。
圖1.1
查看名字為dockerfile的文件,dockerfile文件描述了如何為容器組裝私有的文件系統(tǒng),并且還包含了一些描述如何基于此鏡像運行容器的元數(shù)據(jù)。公告板應(yīng)用程序dockerfile如圖1.2所示。
圖1.2
容器化部署應(yīng)用程序的第一步是編寫dockerfile。您可以把這些dockerfile命令當作是一個創(chuàng)建鏡象的步驟。這個步驟如下:
1、使用版本號6.11.5的鏡像作為本次構(gòu)建的基礎(chǔ)鏡像。6.11.5基礎(chǔ)鏡像是由node.js官方提供的鏡像
2、指定鏡像文件系統(tǒng)的工作目錄為/usr/src/app,即每次登錄基于該鏡像創(chuàng)建的容器,目錄會自動切換到/usr/src/app
3、將package.json文件復制到鏡像的當前位置,即/usr/src/app/package.json
4、在鏡像文件系統(tǒng)中運行npm install命令(它將讀取package.json以確定應(yīng)用程序的節(jié)點依賴關(guān)系,并安裝它們)
5、將應(yīng)用程序的其余源代碼從主機復制到鏡像中。
您可以看到,這些步驟與您在主機上設(shè)置和安裝應(yīng)用程序時可能采取的步驟大致相同,但使用dockerfile允許我們在一個可移植、獨立的docker鏡像(node.js官方鏡像)再次構(gòu)建。
上面的步驟為鏡像構(gòu)建了文件系統(tǒng),但是dockerfile中還有一行,cmd命令行。cmd ["要運行的程序","參數(shù)1","參數(shù)2"] 是告訴容器啟動時要運行的命令或腳本,dockerfile中命令告知此鏡像要支持的容器化進程是npm start。
注意:dockerfile只能有一條cmd命令,如果有多條,則執(zhí)行最后一條。
一個dockerfile始終是從from命令開始,上述是一個簡單的dockerfile文件,還有更多的dockerfile指令,請參閱dockerfile reference()。
構(gòu)建鏡像并測試
現(xiàn)在我們有了源代碼和dockerfile,是時候構(gòu)建我們的第一個鏡像了,并確保從該鏡像啟動的容器能按預期工作。
注意:本示例使用的是linux容器。使用docker desktop的用戶,右鍵單擊系統(tǒng)托盤中的docker徽標,確保您的環(huán)境正在運行l(wèi)inux容器,若不是,請點擊“switch to linux containers...",如圖1.3所示,我當前演示環(huán)境使用的已是linux容器。
圖1.3
1、進入powershell,并確保您當前目錄是node-bulletin-board/bulletin-board-app,如圖1.4所示,執(zhí)行命令
# docker image build -t bulletinboard:1.0 .
圖1.4
在構(gòu)建最后會輸出如下字樣,表示構(gòu)建鏡像成功。
successfully built 49f9b9fb7daf
successfully tagged bulletinboard:1.0
上述命令表是創(chuàng)建一個名為bulletinboard的鏡像(image),tag為1.0,如圖1.5所示。
圖1.5
2、基于bulletinboard鏡像運行一個名為bb的容器并以后臺方式運行,將容器內(nèi)部端口8080,映射到宿主機的8000端口上。
# docker container run --publish 8000:8080 --detach --name bb bulletinboard:1.0
我們可以使用如下命令來查看run指命后可以跟哪些參數(shù)
# docker container run --help
我們登錄到容器,查看到當前目錄就是dockerfile中設(shè)置的工作目錄,如圖1.6所示。
圖1.6
3、通過http://localhost:8000來訪問您的應(yīng)用,您將看到如下界面,如圖1.7所示,則表示應(yīng)用容器化部署成功,接下來就是進行測試、構(gòu)建、發(fā)布、分享等過程。
圖1.7
4、刪除一個容器,即表示該容器的生命周期結(jié)束。
# docker container rm --force bb
“怎么使用Docker部署第一個應(yīng)用程序”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。