创建文件夹:
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