'use strict';
var express = require('express');
var PORT = 8888;
var app = express();
app.get('/', function (req, res) {
res.send('Hello world\n ' + now Date());
});
app.listen(PORT);
console.log('Running on http://localhost:' + PORT);
3. 創建Dockerfile
$ cd ..
$ touch Dockerfile
$ vi 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"]
4. 構建Image
在Dockerfile文件所在目錄下,運行下面命令來構建一個Image
$ sudo docker build -t weiqinl/node .
構建完後查看一下剛構建的鏡像:
$ sudo docker images
5. 運行鏡像
sudo docker run -d --name nodewebsite -p 8888:8888 weiqinl/node:latest
http://www.jianshu.com/p/573ce72804da
1. 先拉取基礎鏡像
2. 第二創建Node.js程序
i. 創建package.json,並寫入相關信息和依賴
ii. 創建server.js
3. 創建Dockerfile
4. 構建Image
在Dockerfile文件所在目錄下,運行下面命令來構建一個Image
構建完後查看一下剛構建的鏡像:
5. 運行鏡像
-d表示容器在後台運行 --name表示給容器別名nodewebsite -p表示端口映射。把本機的8888端口映射到容器的8888端口,這樣外網就能通過本機的8888端口,訪問我們的web了。 後面的weiqinl/node是image的REPOSITORY, latest的鏡像的TAG
6. 測試
我們先通過curl看是否能訪問web
通過ubuntu自帶的瀏覽器查看
如果想進入容器,可以執行命令:
到此,Docker部署nodejs應用,已經完成。