最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Docker快速部署Node.js應(yīng)用的詳細(xì)步驟

 更新時間:2024年07月01日 11:33:16   作者:李  
這篇文章的目標(biāo)是為了向大家展示如何在Docker的container里運行Node.js程序,文中通過圖文與示例代碼介紹的非常詳細(xì),有需要的朋友們可以參考借鑒。

一、前言

可能還有一些同學(xué)不了解docker這個項目,docker是由go語言編寫的,一個快速部署的輕量級虛擬技術(shù)項目,他允許開發(fā)人員將自己的程序和運行環(huán)境一起打包,制作成一個docker的image(鏡像),這樣部署到服務(wù)器上,也只需要下載這個image就可以將程序跑起來,免去每次都安裝各種依賴和環(huán)境的麻煩,還能夠做到應(yīng)用程序之間的隔離

二、實現(xiàn)準(zhǔn)備

我會先創(chuàng)建一個簡單的Node.js web app,來構(gòu)建一個鏡像。然后基于這個Image運行一個container。從而實現(xiàn)快速部署。

由于網(wǎng)絡(luò)的原因我的Node.js鏡像從國內(nèi)的鏡像庫下載,而不是Docker Hub。

先從國內(nèi)的鏡像網(wǎng)站上pull下一下nodejs鏡像。     

docker pull hub.c.163.com/nce2/nodejs:0.12.2

下載完后查看我們的鏡像,找到他的名稱,等會我們會用到

三、創(chuàng)建Node.js 程序

創(chuàng)建package.json,并寫入相關(guān)信息和依賴

vi package.json
{
 "name": "webtest",
 "version": "1.0.0",
 "description": "Node.js on Docker",
 "author": "lpxxn",
 "main": "server.js",
 "scripts": {
 "start": "node server.js"
 },
 "dependencies": {
 "express": "^4.13.3"
 }
}

創(chuàng)建server.js

vi server.js

寫一個最簡單web 這個web基于express框架,返回Hello word.注意我們監(jiān)聽的是8888端口

'use strict';

var express = require('express');

var PORT = 8888;

var app = express();
app.get('/', function (req, res) {
 res.send('Hello world\n');
});

app.listen(PORT);
console.log('Running on http://localhost:' + PORT);

四、創(chuàng)建Dockerfile

接下來主角上場了創(chuàng)建Dockerfile文件 這個文件是創(chuàng)建鏡像所必須的文件

vi Dockerfile

Docker會依照Dockerfile的內(nèi)容來構(gòu)建一個鏡像。我先給出完整的代碼,再一行一行的給出解釋

FROM hub.c.163.com/nce2/nodejs:0.12.2

# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service

# Bundle app source
COPY . /home/Service
RUN npm install

EXPOSE 8888
CMD [ "npm", "start" ]

我們來一句一句的解釋  

FROM hub.c.163.com/nce2/nodejs:0.12.2

FROM是構(gòu)建鏡像的基礎(chǔ)源鏡像,hub.c.163.com/nce2/nodejs:0.12.2 這個是鏡像的名稱,也就是我們一開始從國內(nèi)服務(wù)器上拉下來的那個Image。如果本地沒有Docker 會自己pull鏡像。

# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service

第一句RUN 用于在Image里創(chuàng)建一個文件夾,將來用于保存我們的代碼。

第二句WORKDIR是將我們創(chuàng)建的文件夾做為工作目錄。

# Bundle app source
COPY . /home/Service
RUN npm install

第一句的COPY是把本機(jī)當(dāng)前目錄下的所有文件拷貝到Image的/home/Service文件夾下。

第二句的RUN 使用npm 安裝我們的app據(jù)需要的所有依賴。

EXPOSE 8888

由于我們的web app監(jiān)聽的是8888端口,我們把這個端口暴露給主機(jī),這樣我就能從外部訪問web了。

CMD [ "npm", "start" ]

這個我相信我不用解釋你也能看出來他是做什么的。運行npm start命令,這個命令會運行 node service.js來

啟動我們的web app。

五、構(gòu)建Image

在你Dockerfile文件所在的目錄下運行下面的命令來構(gòu)建一個Image.

docker build -t mynodeapp .

別忘了最后的的那個點

構(gòu)建完后查看一下我們的鏡像

六、運行鏡像

docker run -d -p 8888:8888 ac5

-d 表明容器會在后臺運行,-p 表示端口映射,把本機(jī)的8888商品映射到container的8888端口這樣外網(wǎng)就能通過本機(jī)的8888商品訪問我們的web了。

后面的ac5是我們Image的ID因為前3個就已經(jīng)能定位出這個Image所以我就沒有把后邊的再寫出來。

通過docker ps 查看我們剛運行的Container的ID

打印log  7370就是我們的Container ID,和Image ID一樣,你也可以全寫出來,我比較懶就寫前4位,已經(jīng)足夠標(biāo)識出這個Container了

docker logs 7350

如果你想到Container里可以執(zhí)行下面的命令,進(jìn)入到里邊后就可以像操作普通的linux 一樣。如果想退出可執(zhí)行exit命令。

七、測試

我們先通過curl 看能不能訪問我們的web。

curl -i localhost:8888

也可以通過瀏覽器來看一下

八、總結(jié)

好了,這個小教程到此就結(jié)束了,大家都學(xué)會了嗎?希望這篇文章能幫助你入門。如果有什么問題或者疑問可以留言交流。謝謝大家對腳本之家的支持。

相關(guān)文章

  • 詳解如何在Node.js的httpServer中接收前端發(fā)送的arraybuffer數(shù)據(jù)

    詳解如何在Node.js的httpServer中接收前端發(fā)送的arraybuffer數(shù)據(jù)

    這篇文章主要介紹了詳解如何在Node.js的httpServer中接收前端發(fā)送的arraybuffer數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 在Node.js中發(fā)出HTTP請求的 5 種方法

    在Node.js中發(fā)出HTTP請求的 5 種方法

    學(xué)習(xí)如何在 Node.js 中發(fā)出 HTTP 請求可能會讓人感到不知所措,因為有數(shù)十個可用的庫,每個解決方案都聲稱比上一個更高效,在這篇文章中,我們將探討在 Node.js 中發(fā)出 HTTP 請求的五種最流行的方法,并為每種方法提供說明,需要的朋友可以參考下
    2023-11-11
  • node中使用shell腳本的方法步驟

    node中使用shell腳本的方法步驟

    這篇文章主要介紹了node中使用shell腳本的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Node.js  REPL (交互式解釋器)實例詳解

    Node.js REPL (交互式解釋器)實例詳解

    這篇文章主要介紹了Node.js REPL (交互式解釋器)實例詳解的相關(guān)資料,Node.js REPL(Read Eval Print Loop:交互式解釋器) 表示一個電腦的環(huán)境,類似 Window 系統(tǒng)的終端,我們可以在終端中輸入命令,并接收系統(tǒng)的響應(yīng),需要的朋友可以參考下
    2017-08-08
  • Kubernetes Node刪除鏡像的實現(xiàn)步驟

    Kubernetes Node刪除鏡像的實現(xiàn)步驟

    本文介紹了在Kubernetes集群中如何刪除節(jié)點上的鏡像,包括連接節(jié)點、查看鏡像列表、使用Docker命令刪除鏡像以及驗證刪除結(jié)果的步驟,感興趣的可以了解一下
    2024-09-09
  • node.js中的fs.openSync方法使用說明

    node.js中的fs.openSync方法使用說明

    這篇文章主要介紹了node.js中的fs.openSync方法使用說明,本文介紹了fs.openSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js API詳解之 querystring用法實例分析

    Node.js API詳解之 querystring用法實例分析

    這篇文章主要介紹了Node.js API詳解之 querystring用法,結(jié)合實例形式分析了Node.js API中querystring的基本功能、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2020-04-04
  • Nodejs連接mysql并實現(xiàn)增、刪、改、查操作的方法詳解

    Nodejs連接mysql并實現(xiàn)增、刪、改、查操作的方法詳解

    這篇文章主要介紹了Nodejs連接mysql并實現(xiàn)增、刪、改、查操作的方法,結(jié)合實例形式詳細(xì)分析了nodejs針對mysql數(shù)據(jù)庫的的連接、mysql數(shù)據(jù)庫的創(chuàng)建及nodejs針對mysql增刪改查等相關(guān)操作具體實現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • Node.js中MongoDB查詢數(shù)據(jù)的方法

    Node.js中MongoDB查詢數(shù)據(jù)的方法

    在Node.js中,可以使用MongoDB驅(qū)動程序和Mongoose庫來進(jìn)行MongoDB的查詢操作,本文就來介紹一下Node.js中MongoDB查詢數(shù)據(jù)的方法,感興趣的可以了解一下
    2023-12-12
  • Node4-5靜態(tài)資源服務(wù)器實戰(zhàn)以及優(yōu)化壓縮文件實例內(nèi)容

    Node4-5靜態(tài)資源服務(wù)器實戰(zhàn)以及優(yōu)化壓縮文件實例內(nèi)容

    這篇文章主要介紹了Node4-5靜態(tài)資源服務(wù)器實戰(zhàn)以及優(yōu)化壓縮文件實例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-08-08

最新評論

和林格尔县| 梅河口市| 新安县| 融水| 鄂托克前旗| 万山特区| 邹平县| 鄯善县| 金平| 温泉县| 津市市| 正镶白旗| 潞西市| 杭州市| 获嘉县| 苍南县| 耿马| 淮滨县| 青川县| 安达市| 绥德县| 石景山区| 永福县| 石阡县| 郴州市| 永善县| 上犹县| 昆明市| 老河口市| 巨鹿县| 正宁县| 剑阁县| 揭西县| 莲花县| 宜良县| 木里| 辽宁省| 怀宁县| 宝兴县| 凌源市| 界首市|