摘要:構(gòu)建過(guò)程類似如下運(yùn)行容器鏡像構(gòu)建完成后,可以通過(guò)所構(gòu)建的鏡像創(chuàng)建運(yùn)行容器,從而實(shí)現(xiàn)應(yīng)用的化部暑。使用鏡像運(yùn)行一個(gè)容器在以上操作中,我們通過(guò)鏡像運(yùn)行了容器,并將容器命名為。此時(shí)可通過(guò)訪問(wèn)服務(wù)。
初始化Dockerfile
假設(shè)我們的項(xiàng)目名為express,在express項(xiàng)目中創(chuàng)建編輯Dockerfile文件:
$ vim Dockerfile FROM node:latest RUN mkdir -p /home/www/express WORKDIR /home/www/express COPY . /home/www/express RUN npm install EXPOSE 3000 ENTRYPOINT ["npm", "run"] CMD ["start"]
這個(gè)文件包含了以下命令:
FROM node:latest - 指定使用最新版本的node基礎(chǔ)鏡像
RUN mkdir -p /home/www/express - 在容器內(nèi)創(chuàng)建/home/www/express目錄
WORKDIR /home/www/express - 將容器內(nèi)工作目錄設(shè)置為/home/www/express
COPY . /home/www/express - 將宿主機(jī)當(dāng)前目錄下內(nèi)容復(fù)制到鏡像/home/www/express目錄下
RUN npm install - npm install安裝應(yīng)用所需的NPM包
EXPOSE 3000 - 對(duì)外開(kāi)放容器的3000端口
ENTRYPOINT ["npm", "run"] - 容器啟動(dòng)后執(zhí)行的命令。不可被docker run提供的參數(shù)覆蓋
CMD ["start"] - 在容器啟動(dòng)時(shí),執(zhí)行的命令,可被docker run提供的參數(shù)覆蓋
構(gòu)建鏡像編寫(xiě)完Dockerfile文件后,就可以通過(guò)docker build命令來(lái)構(gòu)建鏡像:
$ sudo docker build -t test/express .
我們通過(guò)-t參數(shù),將鏡像命名為test/express。構(gòu)建過(guò)程類似如下:
Sending build context to Docker daemon 29.7 kB Step 1/8 : FROM registry.src.followme.com:5000/node:v1 ---> c99c549e8227 Step 2/8 : RUN mkdir -p /home/www/express-app ---> Running in 8be9a90629b0 ---> b9f584851225 Removing intermediate container 8be9a90629b0 Step 3/8 : WORKDIR /home/www/express-app ---> 5072c31f9dd9 Removing intermediate container e9dbf4ce3d8b Step 4/8 : COPY . /home/www/express-app ---> a4d1725f15ed Removing intermediate container 30aa49765015 Step 5/8 : RUN yarn ---> Running in f181c243deaa yarn install v1.3.2 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... Done in 9.46s. ---> d390931d73e6 Removing intermediate container f181c243deaa Step 6/8 : EXPOSE 3000 ---> Running in 94101ab38864 ---> 43199a8a5a90 Removing intermediate container 94101ab38864 Step 7/8 : ENTRYPOINT npm run ---> Running in 80b1318962cf ---> 6b203c50e855 Removing intermediate container 80b1318962cf Step 8/8 : CMD start ---> Running in a9909e537f59 ---> d56eae48377c Removing intermediate container a9909e537f59 Successfully built d56eae48377c運(yùn)行容器
鏡像構(gòu)建完成后,可以通過(guò)所構(gòu)建的鏡像創(chuàng)建/運(yùn)行容器,從而實(shí)現(xiàn)express應(yīng)用的 Docker 化部暑。
使用tets/express鏡像運(yùn)行一個(gè)容器:
$ sudo docker run -d --name experss-app -p 3000:3000 test/express
在以上操作中,我們通過(guò)test/express鏡像運(yùn)行了容器,并將容器命名為experss-app。運(yùn)行容器,我們還指定了-d參數(shù),該參數(shù)使容器以后臺(tái)的方式運(yùn)行。而-p參數(shù)將宿主機(jī)的3000端口映射到了容器的3000端口。運(yùn)行容器后,可以通過(guò)docker ps命令看到運(yùn)行中的容器。此時(shí)可通過(guò)localhost:3000訪問(wèn)服務(wù)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27149.html
摘要:本文將采用技術(shù)部署一個(gè)簡(jiǎn)單的應(yīng)用,它包括一個(gè)簡(jiǎn)單的前置網(wǎng)關(guān)服務(wù)器以及業(yè)務(wù)服務(wù)器。同時(shí)使用配置特定鏡像,采用進(jìn)行容器編排,解決依賴網(wǎng)絡(luò)等問(wèn)題。服務(wù)器首先搭建一個(gè)單節(jié)點(diǎn)緩存服務(wù),采用官方提供的最新版鏡像,無(wú)需構(gòu)建。 docker是一種虛擬化技術(shù),可以在內(nèi)核層隔離資源。因此對(duì)于上層應(yīng)用而言,采用docker技術(shù)可以達(dá)到類似于虛擬機(jī)的沙盒環(huán)境。這大大簡(jiǎn)化了應(yīng)用部署,讓運(yùn)維人員無(wú)需陷入無(wú)止境繁瑣...
摘要:本文將采用技術(shù)部署一個(gè)簡(jiǎn)單的應(yīng)用,它包括一個(gè)簡(jiǎn)單的前置網(wǎng)關(guān)服務(wù)器以及業(yè)務(wù)服務(wù)器。同時(shí)使用配置特定鏡像,采用進(jìn)行容器編排,解決依賴網(wǎng)絡(luò)等問(wèn)題。服務(wù)器首先搭建一個(gè)單節(jié)點(diǎn)緩存服務(wù),采用官方提供的最新版鏡像,無(wú)需構(gòu)建。 docker是一種虛擬化技術(shù),可以在內(nèi)核層隔離資源。因此對(duì)于上層應(yīng)用而言,采用docker技術(shù)可以達(dá)到類似于虛擬機(jī)的沙盒環(huán)境。這大大簡(jiǎn)化了應(yīng)用部署,讓運(yùn)維人員無(wú)需陷入無(wú)止境繁瑣...
摘要:接下來(lái)我們將逐步的減少這個(gè)鏡像的體積。優(yōu)化生產(chǎn)環(huán)境鏡像使用鏡像大幅減小鏡像體積的最簡(jiǎn)單和最快的方法是選擇一個(gè)小得多的基本鏡像。使用多階段構(gòu)建可以充分利用鏡像的緩存,大大減少最終部署到生產(chǎn)環(huán)境的時(shí)間。 關(guān)注作者github每日一道面試題詳解 你討厭部署你的應(yīng)用程序花費(fèi)很長(zhǎng)時(shí)間嗎? 對(duì)于單個(gè)容器來(lái)說(shuō),超過(guò)gb并不是最佳實(shí)踐。每次部署新版本時(shí)都要處理數(shù)十億字節(jié),這對(duì)我們來(lái)說(shuō)并不太合適。 本文...
摘要:采用虛擬化的技術(shù)來(lái)虛擬化出應(yīng)用程序的運(yùn)行環(huán)境。安裝成功后,可以通過(guò)查看版本號(hào)盡量使用最新的穩(wěn)定版本。是鏡像名,是鏡像的版本號(hào),到此你已經(jīng)成功構(gòu)建了一個(gè)新的鏡像,你可以通過(guò),查看你的鏡像。部署時(shí)將此文件到生產(chǎn)環(huán)境服務(wù)器上。 Docker docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,可以為我們提供安全、可移植、可重復(fù)的自動(dòng)化部署的方式。docker采用虛擬化的技術(shù)來(lái)虛擬化出應(yīng)用程序的運(yùn)行環(huán)境。此...
摘要:采用虛擬化的技術(shù)來(lái)虛擬化出應(yīng)用程序的運(yùn)行環(huán)境。安裝成功后,可以通過(guò)查看版本號(hào)盡量使用最新的穩(wěn)定版本。是鏡像名,是鏡像的版本號(hào),到此你已經(jīng)成功構(gòu)建了一個(gè)新的鏡像,你可以通過(guò),查看你的鏡像。部署時(shí)將此文件到生產(chǎn)環(huán)境服務(wù)器上。 Docker docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,可以為我們提供安全、可移植、可重復(fù)的自動(dòng)化部署的方式。docker采用虛擬化的技術(shù)來(lái)虛擬化出應(yīng)用程序的運(yùn)行環(huán)境。此...
閱讀 3012·2021-11-24 10:22
閱讀 3059·2021-11-23 10:10
閱讀 1367·2021-09-28 09:35
閱讀 1761·2019-08-29 13:16
閱讀 1402·2019-08-26 13:29
閱讀 2798·2019-08-26 10:27
閱讀 687·2019-08-26 10:09
閱讀 1451·2019-08-23 18:05