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

Docker實(shí)踐--部署Nodejs應(yīng)用

 更新時(shí)間:2017年01月12日 09:45:12   作者:lpxxn  
本篇文章主要介紹了Docker實(shí)踐--部署Nodejs應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

這個(gè)例子的目標(biāo)是為了向大家展示如何在Docker的container里運(yùn)行Node.js程序。我會(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ì)在后臺(tái)運(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)識(shí)出這個(gè)Container了

docker logs 7350

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

 測試

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

curl -i localhost:8888

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker容器里面的root權(quán)限獲取方法

    docker容器里面的root權(quán)限獲取方法

    這篇文章主要介紹了docker容器里面的root權(quán)限獲取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Docker安裝MySQL鏡像實(shí)戰(zhàn)分享

    Docker安裝MySQL鏡像實(shí)戰(zhàn)分享

    這篇文章主要給大家分享了Docker安裝MySQL鏡像實(shí)戰(zhàn),讓大家更深入的了解容器的使用場景,文章通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • Docker部署MinIO對(duì)象存儲(chǔ)服務(wù)器結(jié)合Cpolar實(shí)現(xiàn)遠(yuǎn)程訪問的操作方法

    Docker部署MinIO對(duì)象存儲(chǔ)服務(wù)器結(jié)合Cpolar實(shí)現(xiàn)遠(yuǎn)程訪問的操作方法

    MinIO是一個(gè)開源的軟件,可以免費(fèi)使用,還可以在普通硬件上運(yùn)行,降低了存儲(chǔ)成本,本文介紹在本地Docker中部署MinIO服務(wù),并實(shí)現(xiàn)遠(yuǎn)程訪問管理界面,節(jié)約云服務(wù)器運(yùn)行成本,感興趣的朋友一起看看吧
    2023-12-12
  • 一文帶你快速了解和使用Docker

    一文帶你快速了解和使用Docker

    本文對(duì) Docker 進(jìn)行全面闡述,詳細(xì)介紹 Docker 的作用、其基本使用,如常用命令、Dockerfile 的作用及使用、Docker Compose 的作用及使用,感興趣的同學(xué)跟著小編一起來學(xué)習(xí)吧
    2023-05-05
  • Docker+nacos+seata1.3.0安裝與使用配置教程

    Docker+nacos+seata1.3.0安裝與使用配置教程

    這篇文章主要介紹了Docker+nacos+seata1.3.0安裝與使用配置教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • docker如何修改容器ip范圍

    docker如何修改容器ip范圍

    這篇文章主要介紹了docker如何修改容器ip范圍問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 使用Docker搭建Django,Nginx,R,Python部署環(huán)境的方法

    使用Docker搭建Django,Nginx,R,Python部署環(huán)境的方法

    本篇文章主要介紹了使用Docker搭建Django,Nginx,R,Python部署環(huán)境的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Docker部署安裝Redash中文版的方法詳解

    Docker部署安裝Redash中文版的方法詳解

    這篇文章主要介紹了Docker部署安裝Redash中文版的方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 常用的8個(gè)應(yīng)用和中間件的Docker運(yùn)行示例詳解

    常用的8個(gè)應(yīng)用和中間件的Docker運(yùn)行示例詳解

    Portainer是一個(gè)輕量級(jí)的管理 UI ,可讓你輕松管理不同的 Docker 環(huán)境(Docker 主機(jī)或 Swarm 群集),這篇文章主要介紹了常用的8個(gè)應(yīng)用和中間件的Docker運(yùn)行示例,需要的朋友可以參考下
    2024-03-03
  • Docker安裝基礎(chǔ)鏡像服務(wù)的步驟

    Docker安裝基礎(chǔ)鏡像服務(wù)的步驟

    外部機(jī)器不能直接訪問容器,網(wǎng)是不通的,但可以訪問宿主機(jī),只要將容器的端口與宿主機(jī)進(jìn)行映射后,訪問宿主機(jī)的端口就相當(dāng)于訪問了容器的端口,本文介紹Docker如何安裝基礎(chǔ)鏡像服務(wù),感興趣的朋友一起看看吧
    2024-01-01

最新評(píng)論

福安市| 荥经县| 舟山市| 剑河县| 阳江市| 安阳县| 巧家县| 湘潭市| 武定县| 灵丘县| 花莲市| 潞西市| 伊吾县| 怀柔区| 通江县| 贵阳市| 留坝县| 沙湾县| 舞钢市| 奉新县| 元谋县| 桐柏县| 新民市| 运城市| 大足县| 新河县| 永宁县| 临潭县| 河西区| 蒲江县| 汉川市| 抚州市| 岳西县| 巧家县| 富锦市| 阳西县| 黔东| 类乌齐县| 惠东县| 琼中| 资中县|