使用docker部署nodejs应用
2017-09-07 本文已影响176人
褪色的记忆1994
- 从Docker Hub拉取node基础镜像
docker pull node
- 创建 package.json,并写入相关信息和依赖
{
"name": "nodeapp",
"version": "0.0.1",
"description": "Node.js on Docker",
"author": "xvjialing",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.13.3"
}
}
- 创建server.js
'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);
- 创建Dockerfile
#设置基础镜像,如果本地没有该镜像,会从Docker.io服务器pull镜像
FROM node
#创建app目录,保存我们的代码
RUN mkdir -p /usr/src/node
#设置工作目录
WORKDIR /usr/src/node
#复制所有文件到 工作目录。
COPY . /usr/src/node
#编译运行node项目,使用npm安装程序的所有依赖,利用taobao的npm安装
WORKDIR /usr/src/node/website
RUN npm install --registry=https://registry.npm.taobao.org
#暴露container的端口
EXPOSE 8888
#运行命令
CMD ["npm", "start"]
-
构建Docker镜像
sudo docker build -t xvjialing/node .
-
运行镜像
sudo docker run -d -p 8888:8888 --name nodeapp xvjialing/node
个人博客:https://blog.xvjialing.xyz
github主页:https://github.com/xvjialing
微信公众号
微信公众号