亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、前言

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

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

我會(huì)先創(chuàng)建一個(gè)簡單的Node.js web app,來構(gòu)建一個(gè)鏡像。然后基于這個(gè)Image運(yùn)行一個(gè)container。從而實(shí)現(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

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

三、創(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

寫一個(gè)最簡單web 這個(gè)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文件 這個(gè)文件是創(chuàng)建鏡像所必須的文件

vi Dockerfile

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

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 這個(gè)是鏡像的名稱,也就是我們一開始從國內(nèi)服務(wù)器上拉下來的那個(gè)Image。如果本地沒有Docker 會(huì)自己pull鏡像。

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

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

第二句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端口,我們把這個(gè)端口暴露給主機(jī),這樣我就能從外部訪問web了。

CMD [ "npm", "start" ]

這個(gè)我相信我不用解釋你也能看出來他是做什么的。運(yùn)行npm start命令,這個(gè)命令會(huì)運(yùn)行 node service.js來

啟動(dòng)我們的web app。

五、構(gòu)建Image

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

docker build -t mynodeapp .

別忘了最后的的那個(gè)點(diǎn)

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

六、運(yùn)行鏡像

docker run -d -p 8888:8888 ac5

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

后面的ac5是我們Image的ID因?yàn)榍?個(gè)就已經(jīng)能定位出這個(gè)Image所以我就沒有把后邊的再寫出來。

通過docker ps 查看我們剛運(yùn)行的Container的ID

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

docker logs 7350

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

七、測試

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

curl -i localhost:8888

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

八、總結(jié)

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

相關(guān)文章

  • Node.js模塊全局安裝路徑配置方法

    Node.js模塊全局安裝路徑配置方法

    今天小編就為大家分享一篇Node.js模塊全局安裝路徑配置方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟

    寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟

    前段時(shí)間部署node項(xiàng)目的時(shí)候出現(xiàn)了一點(diǎn)問題,所以想著給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 10個(gè)最優(yōu)秀的Node.js MVC框架

    10個(gè)最優(yōu)秀的Node.js MVC框架

    這篇文章主要為大家詳細(xì)介紹了10個(gè)最優(yōu)秀的Node.js MVC框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • node.js自動(dòng)上傳ftp的腳本分享

    node.js自動(dòng)上傳ftp的腳本分享

    這篇文章主要給大家介紹了一個(gè)關(guān)于node.js自動(dòng)上傳ftp腳本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Nodejs中crypto模塊的安全知識講解

    Nodejs中crypto模塊的安全知識講解

    本篇文章給大家詳細(xì)介紹了Nodejs中crypto模塊的安全知識的相關(guān)內(nèi)容,需要的朋友跟著小編一下學(xué)習(xí)參考下吧。
    2018-01-01
  • 測試驅(qū)動(dòng)ChatGPT編程示例詳解

    測試驅(qū)動(dòng)ChatGPT編程示例詳解

    這篇文章主要為大家介紹了測試驅(qū)動(dòng)ChatGPT編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Node.js安裝配置圖文教程

    Node.js安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了Node.js安裝配置的圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 關(guān)于node.js版本npm -v報(bào)錯(cuò)問題的解決方法

    關(guān)于node.js版本npm -v報(bào)錯(cuò)問題的解決方法

    最近工作中遇到了些問題,這里總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于node.js版本npm -v報(bào)錯(cuò)問題的解決方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • node.js使用redis儲存session的方法

    node.js使用redis儲存session的方法

    這篇文章主要介紹了node.js使用redis儲存session的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Node.js中的模塊化,npm包管理器詳解

    Node.js中的模塊化,npm包管理器詳解

    這篇文章主要介紹了node模塊與npm包管理工具,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-09-09

最新評論