当前位置: 首页 > news >正文

docker安装nodejs

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


                           docker安装nodejs

创建文件夹:

mkdir ~/docker-node-hello && cd $_

创建 index.js

var express = require('express')
var app = express()

app.get('/', function (req, res) {
 res.send('Hello World!')
})

var server = app.listen(3001, function () {

 var host = server.address().address
 var port = server.address().port

 console.log('Example app listening at http://%s:%s', host, port)

})

创建 package.json

{
 "name": "docker-node-hello",
 "private": true,
 "version": "0.0.1",
 "description": "Node.js Hello world app on Ubuntu using docker",
 "dependencies": {
   "express": "4.x.x"
 }
}

创建 Dockerfile 配置文件

# 设置基础镜像
FROM ubuntu:14.10

# 如果上个步骤已经更新软件源,这步可以忽略
RUN apt-get update

# 安装 NodeJS 和 npm
RUN apt-get install -y nodejs npm

# 将目录中的文件添加至镜像的 /srv/hello 目录中
ADD . /srv/hello

# 设置工作目录
WORKDIR /srv/hello

# 安装 Node 依赖库
RUN npm install

# 暴露 3001 端口,便于访问
EXPOSE 3001

# 设置启动时默认运行命令
CMD ["nodejs”, “/srv/hello/index"]

构建镜像

  # 通过该命令,按照 Dockerfile 所配置的信息构建出镜像
  # -t 镜像的名称
  # --rm 构建成功后,删除临时镜像(每执行一行 Dockerfile 中的命令,就会创建一个临时镜像)
  docker build --rm -t node-hello .

  # 检查镜像是否创建成功
  docker images

运行镜像

docker run -p 3001:3001 --name nodejs1 node-hello

转载于:https://my.oschina.net/thinkive/blog/920553

相关文章:

  • 第六课 自己实现路由改进,针对不同请求的路径进行响应
  • 开启归档模式,归档日志已满处理方法
  • C++ 对象模型具体评论(特别easy理解力)
  • 使用pyenv管理不同版本的python
  • 剑指Offer-- 树的子结构
  • 基于SVD实现PCA的图像识别
  • zw·准专利·高保真二值图细部切分算法
  • [ IOS ] iOS-控制器View的创建和生命周期
  • 使用Java对文件进行解压缩
  • 《自信力~成为更好的自己》晨读笔记
  • Spring aop:decare-parent 为类增加新的方法
  • 在resin配置參数实现JConsole远程监控JVM
  • 同样加班 不同收获(转)
  • 使用Java语言开发微信公众平台(八)——自定义菜单功能
  • SPRING-MVC 访问静态资源
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【笔记】你不知道的JS读书笔记——Promise
  • Apache的基本使用
  • iOS | NSProxy
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript-Array类型
  • node-glob通配符
  • PAT A1017 优先队列
  • Selenium实战教程系列(二)---元素定位
  • vue-router 实现分析
  • 从零开始的无人驾驶 1
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 力扣(LeetCode)22
  • 前端性能优化——回流与重绘
  • 什么是Javascript函数节流?
  • 温故知新之javascript面向对象
  • 我的zsh配置, 2019最新方案
  • 正则表达式小结
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #if 1...#endif
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • $$$$GB2312-80区位编码表$$$$
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计大学生兼职系统
  • (九)One-Wire总线-DS18B20
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Reactor简单使用教程
  • .Net 高效开发之不可错过的实用工具
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .Net(C#)自定义WinForm控件之小结篇
  • .Net环境下的缓存技术介绍
  • .NET连接MongoDB数据库实例教程
  • .NET中GET与SET的用法