1. 建立一个文件夹
  2. 用管理员身份打开powershell.
  3. 在文件夹下面运行npm init, 根据提示填入信息,以便产生一个package.json文件。
  4. 在文件中加入需要的dependencies,例如:
  5. {
  6. "name":
    "docker_web_app",
  7. "version":
    "1.0.0",
  8. "description":
    "Node.js on Docker",
  9. "author":
    "First Last <first.last@example.com>",
  10. "main":
    "server.js",
  11. "scripts": {
  12. "start":
    "node server.js"
  13. },
  14. "dependencies": {
  15. "express":
    "^4.13.3"
  16. }
  17. }
  18.  

    4. 创建一个app.js文件,例如:

    const express = require('express')

    const app = express()

     

    app.get('/', function (req, res) {

    res.send('Hello World!')

    })

     

    app.listen(3000, function () {

    console.log('Example app listening on port 3000!')

    })

     

    5. 创建一个空文件名字为Dockerfile,填入如下内容:

    FROM node:boron

     

    # Create app directory

    WORKDIR /app

     

    # Install app dependencies

    COPY package.json .

    # For npm@5 or later, copy package-lock.json as well

    # COPY package.json package-lock.json ./

     

    RUN npm install

     

    # Bundle app source

    COPY . .

     

    EXPOSE 3000

    CMD [ "node", "app.js" ]

     

    6. 创建名为.dockerignore的文件,并输入如下的内容:

node_modules

npm-debug.log

 

这是为了防止本地的module和debug log被拷贝进docker image.

(我这一步无法做,因为没有办法创建这样的文件,总是要求必须有文件名。需要进一步调查)

7. Build image

docker build -t nodehello .

 

8. 运行image.

docker run -p 3000:3000 -d nodehello

 

如果运行成功,会出现Example app listening on port 3000的字样。

 

这时访问http://localhhost:3000 就可以访问app.js中定义的内容了。

 

参考文章:

https://nodejs.org/en/docs/guides/nodejs-docker-webapp/

https://www.distelli.com/docs/tutorials/build-and-deploy-nodejs-with-docker/

https://expressjs.com/en/starter/hello-world.html

https://docs.docker.com/get-started/part2/#build-the-app

 

 

 

如何用Docker建立一个Node.js的开发环境的更多相关文章

  1. 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记

    近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...

  2. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  3. Ubuntu 14.04下搭建Node.js的开发环境

    最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...

  4. Windows 7下Node.js Web开发环境搭建笔记

    Node.js是什么? 我们看看百科里怎么说的?JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本 ...

  5. 建立一个node.js服务器(使用express搭建第一个Web环境)

    一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...

  6. Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)

    最近在学习Node.js相关知识,在环境搭建上耗费了不少功夫,故此把这个过程写下来同大家分享一下,今天我先来介绍一下Docker,有很多人都写过相关知识,还有一些教程,在此我只想写一下,我的学习过程中 ...

  7. 部署node.js的开发环境

    1.进入Node.js的官方网站下载安装包: http:nodejs.org 2.安装后打开cmd的dos窗口(在path环境变量中查看到有nodejs说明安装成功): 3.运行node.

  8. 搭建Node.js Redis开发环境

    创建项目 初始化为node项目 $npm init   安装redis   安装@types/node, @types/redis, typescript   初始化TypeScript   配置ts ...

  9. node.js vue开发环境搭建

    开发工具安装 1.安装node.js 双击安装程序 node-v8.9.3-x64.msi,进行安装即可 2.设置taobao镜像 npm config set registry https://re ...

随机推荐

  1. spring cloud 学习(7) - 生产环境如何不停机热发布?

    业务繁忙的系统,原则上是不允许停机的,那么问题来了,如果真有严重的bug要修复,不得不发布,怎么做到不停机发布,对业务无感知呢? eureka 提供了一系列rest url,可以对注册实例进行操作,比 ...

  2. 強大的jQuery Chart组件-Highcharts

    Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone.IE和火狐等等: 对个人用户完全免费: 纯JS,无BS: 支持大部分的图 ...

  3. Using Dtrace OEL 6.X

    http://www.hhutzler.de/blog/using-dtrace/ http://docs.oracle.com/cd/E37670_01/E38608/html/dt_sdtparg ...

  4. [ACM] HDU 2255 奔小康赚大钱 (二分图最大权匹配,KM算法)

    奔小康赚大钱 Problem Description 传说在遥远的地方有一个很富裕的村落,有一天,村长决定进行制度改革:又一次分配房子. 这但是一件大事,关系到人民的住房问题啊. 村里共同拥有n间房间 ...

  5. JQuery攻略(四)事件

    jQuery事件处理,鼠标的单击,双击,悬停,键盘按键,文本动画..... 此章节有 1.1被点击的按钮查找 1.2事件的自动触发 1.3点击之后禁用按钮 1.4鼠标事件 1.5焦点事件 1.6CSS ...

  6. 对于多个button要在同一个监听器中实现自己的单击事件的方法小诀窍。

    在网上的一些教程中往往是把一个button加入多个监听器,却非常少有人会把多个button在同一个监听器中去实现他们的单击事件,并且这杨的事实上是非常有用的,比方说在制作一个简单的计算器是就须要0-9 ...

  7. ubuntu声音问题

    在终端查看声卡: aplay -l 成功显示: **** PLAYBACK硬件设备列表 **** card 0: Intel [HDA Intel], device 0: ALC662 rev1 An ...

  8. C# 异步编程Task整理(一)

    一.简介 .Net Framework 4.0新增了一个System.Threading.Tasks命名空间,它包含的类提供了任务的相关操作.使用任务不仅可以获得一个抽象层,还能对底层线程进行很多统一 ...

  9. HTML5实现简单圆周运动示例

    一.使用JS实现圆周运动 根据指定圆心.半径,在定时器中移动固定的弧度,重绘圆圈的位置 源代码: <!DOCTYPE html> <html lang="en"& ...

  10. Promise is rejected: Error: 2 UNKNOWN: error starting container: API error (404): {"message":"network build-blockchain-insurance-app_default not found"}出错的解决方案

    错误描述: docker logs web 现象: > blockchain-for-insurance@2.1.0 serve /app > cross-env NODE_ENV=pro ...