Docker 生成Node.js web app(含端口映射)
1.新建目录src,并进入src目录
[xiejdm@localhost Documents]$ mkdir src
[xiejdm@localhost Documents]$ cd src/
2.创建package.json和index.js文件,文件内容如下:
package.json
[xiejdm@localhost Documents]$ mkdir src
[xiejdm@localhost Documents]$ cd src/
[xiejdm@localhost src]$ cat package.json
{
"name": "docker-centos-hello",
"private": true,
"version": "0.0.1",
"description": "Node.js Hello world app on CentOS using docker",
"author": "Gideon xie <xiejdml@gmail.com>",
"dependencies": {
"express": "3.2.4"
}
}
index.js
[xiejdm@localhost src]$ cat index.js
var express = require('express'); // Constants
var PORT = 8080; // App
var app = express();
app.get('/', function (req, res) {
res.send('Hello world\n');
}); app.listen(PORT);
3.创建Dockfile
[xiejdm@localhost src]$ cat Dockerfile
FROM centos:centos7 # Enable EPEL for Node.js
RUN yum install -y epel-release
# Install Node.js and npm
RUN yum install -y npm # Bundle app source
COPY . /src
# Install app dependencies
RUN cd /src; npm install EXPOSE
CMD ["node", "/src/index.js"]
[xiejdm@localhost src]$
4.使用docker build构建生成镜像
[xiejdm@localhost src]$ docker build -t gideon/centos-node-hello .
Sending build context to Docker daemon 4.096 kB
Sending build context to Docker daemon
Step : FROM centos:centos7
---> 7322fbe74aa5
Step : RUN yum install -y epel-release
---> Running in 858c0e3e9a22
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* updates: mirrors.nwsuaf.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch :- will be installed
--> Finished Dependency Resolution Dependencies Resolved ================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
epel-release noarch - extras k Transaction Summary
================================================================================
Install Package Total download size: k
······
······
······
npm http https://registry.npmjs.org/qs/-/qs-0.6.4.tgz
npm WARN engine formidable@1.0.: wanted: {"node":"<0.9.0"} (current: {"node":"v0.10.36","npm":"1.3.6"})
express@3.2. node_modules/express
├── methods@0.0.
├── fresh@0.1.
├── range-parser@0.0.
├── cookie-signature@1.0.
├── buffer-crc32@0.2.
├── cookie@0.0.
├── commander@0.6.
├── mkdirp@0.3.
├── send@0.1. (mime@1.2.)
├── debug@2.2. (ms@0.7.)
└── connect@2.7. (pause@0.0., qs@0.6., bytes@0.2., formidable@1.0.)
---> 66738118fe5d
Removing intermediate container cad428ec3167
Step : EXPOSE
---> Running in 9ee7937e5835
---> f6ccd16494ac
Removing intermediate container 9ee7937e5835
Step : CMD node /src/index.js
---> Running in 9ca19e7392e9
---> ae5f980eea52
Removing intermediate container 9ca19e7392e9
Successfully built ae5f980eea52
[xiejdm@localhost src]$
5.查看我的镜像
[xiejdm@localhost src]$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
gideon/centos-node-hello latest ae5f980eea52 About a minute ago MB
nodejs_hello/node latest 2daac5743daa minutes ago 544.7 MB
gideon/nodejs latest f30730d7c260 days ago 544.7 MB
nginx latest 6886fb5a9b8d days ago 132.8 MB
ubuntu latest d2a0ecffe6fa weeks ago 188.3 MB
centos centos7 7322fbe74aa5 weeks ago 172.2 MB
centos latest 7322fbe74aa5 weeks ago 172.2 MB
hello-world latest 91c95931e552 months ago B
[xiejdm@localhost src]$
6.运行刚刚生成的镜像,并将容器的8080端口映射到主机的49161端口
[xiejdm@localhost src]$ docker run -p : -d gideon/centos-node-hello
71baf591eb27a2373daf5a802ee9406e635878ee1b1fcd047eb3f39e476b4406
[xiejdm@localhost src]$
7.在本机输入localhost:49161,访问helloword应用。

备注: CentOS 7中增加EPEL库,直接使用yum install epel-release即可(CentOS 5/6则需要下载对应的rpm包然后进行安装)。
参考:http://docs.docker.com/examples/nodejs_web_app/
Docker 生成Node.js web app(含端口映射)的更多相关文章
- [Docker] Build a Simple Node.js Web Server with Docker
Learn how to build a simple Node.js web server with Docker. In this lesson, we'll create a Dockerfil ...
- node.js Web应用框架Express.js(一)
什么是Express.js Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,提供丰富的HTTP工具以及来自Connect框架的中间件随 ...
- KoaHub.js是基于 Koa.js 平台的 Node.js web 快速开发框架
koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源
视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks
视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...
- node.js Web应用框架Express入门指南
node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...
- 利用OpenShift托管Node.js Web服务进行微信公众号开发
最近写了一个微信的翻译机器人.用户只要关注该公众号,发送英文的消息,就能收到中文翻译的回复.有兴趣的读者可以扫描下面的二维码关注该公众号,尝试发送英文单词试试看.(有时候第一次发送单词会收到“该公众号 ...
随机推荐
- volley三种基本请求图片的方式与Lru的基本使用:正常的加载+含有Lru缓存的加载+Volley控件networkImageview的使用
首先做出全局的请求队列 package com.qg.lizhanqi.myvolleydemo; import android.app.Application; import com.android ...
- MIT scheme入门使用
在win7下可安装MIT-GUN scheme, 点开后有两个界面:一个交互式命令行界面:一个Edwin界面. 在命令行界面按Ctrl-G可以开始输入.在Edwin界面,输入完整命令后按Ctrl ...
- VC++ 控制台不自动退出
1.Ctrl+F5 2.结尾添加 getchar() 3.结尾添加 system("pause"); 参考:http://jingyan.baidu.com/article/555 ...
- tomcat解决乱码
今天遇到个问题,太尴尬了: 本来做好并测试号的项目提交到svn, 组员下了之后,又部分url传递的中文参数在另一个jsp接收出现乱码(只有我的不乱码). 改了之后更尴尬的事情发生了:组员的全部不乱码, ...
- Js 日期处理
Js获取当前日期时间 var myDate = new Date(); myDate.getFullYear(); //获取完整的年份(4位,1970-????) 2014myDate.get ...
- [C++程序设计]变量的存储类别
全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空间.在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放. 在动态存储区中存放以下数据: ...
- CodeForces 124B Permutations
http://codeforces.com/problemset/problem/124/B Description You are given nk-digit integers. You have ...
- 关于STM32工程的错误,狗血错误。。。..\CMSIS\core_cm3.h(1087): error: #20: identifier "IRQn_Type" is undefined
这件事还是要写一篇博客了,为了后来的人不换致命性的错误 辛辛苦苦写的一个四个不同的引脚不同时钟不同寄存器分别产生四种不同占空比不同周期的信号方波程序超级经典 PS:页尾上传PWM波形产生工程附件供大 ...
- WordPress教程之判断文章所属分类函数in_category、is_category
最近自己在修改一个采用Wordpress程序的博客的时候需要用到一个特殊的功能:我需要判断这篇文章是属于哪些分类,如果属于我设定的分类下的文章,则输出一个DIV内容.按道理说实现这个功能应该不算太难, ...
- ubuntu 安装openproj-1.4-2.noarch.rpm
一 openproj是rpm包,ubuntu下需要转成deb安装.具体步骤1:下载:http://sourceforge.net/projects/openproj/2:安装alien sudo ap ...