建立文件夾:node
mkdir ~/docker-node-hello && cd $_
建立 index.jsdocker
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.jsonexpress
{ "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 配置文件npm
# 設置基礎鏡像 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"]
構建鏡像json
# 經過該命令,按照 Dockerfile 所配置的信息構建出鏡像 # -t 鏡像的名稱 # --rm 構建成功後,刪除臨時鏡像(每執行一行 Dockerfile 中的命令,就會建立一個臨時鏡像) docker build --rm -t node-hello . # 檢查鏡像是否建立成功 docker images
運行鏡像ubuntu
docker run -p 3001:3001 --name nodejs1 node-hello