-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
http://www.jianshu.com/p/573ce72804da
1. 先拉取基礎鏡像
$ sudo docker pull node:latest
2. 第二創建Node.js程序
i. 創建package.json,並寫入相關信息和依賴
$ mkdir -p node/website && cd node/website
$ touch package.json
$ vi package.json
{
"name": "website",
"version": "0.0.1",
"description": "Node.js on Docker",
"author": "weiqinl",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.13.3"
}
}
ii. 創建server.js
$ touch server.js
$ vi server.js
'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
-d表示容器在後台運行
--name表示給容器別名nodewebsite
-p表示端口映射。把本機的8888端口映射到容器的8888端口,這樣外網就能通過本機的8888端口,訪問我們的web了。
後面的weiqinl/node是image的REPOSITORY, latest的鏡像的TAG
6. 測試
我們先通過curl看是否能訪問web
$ curl -i localhost:8888
通過ubuntu自帶的瀏覽器查看
如果想進入容器,可以執行命令:
$ sudo docker exec -it weiqinl/node:latest /bin/bash
到此,Docker部署nodejs應用,已經完成。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels