测试工程NodeHello
在此文件夹下,有文件Dockerfile、hi.js。Dockerfile内容为
FROM node:7.9.0
COPY . /app
WORKDIR /app
hi.js内容为:
var http=require("http")
var url=require("url");
var util=require("util");
function onRequest(request, response){
console.log("Request received");
var pathName = url.parse(request.url).pathname;
console.log("Request path: " + pathName);
response.writeHead(200, {"Content-Type":"text/plain"});
//response.write("Hello World");
//response.write(util.inspect(url.parse(request.url, true)));
var params = url.parse(request.url, true).query;
response.write("site name: " + params.name);
response.write("\n");
response.write("site url: " + params.url);
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started");
编译Docker
切换到NodeHello目录下
sudo docker build -t sim/nodehello-docker .
执行结果如下:
Sending build context to Docker daemon 3.584kB
Step 1/3 : FROM node:7.9.0
7.9.0: Pulling from library/node
cd0a524342ef: Pull complete
e39c3ffe4133: Pull complete
85334a7c2001: Pull complete
4c546d9d6a84: Pull complete
fa1ae2b8eedb: Pull complete
2e2f1cff6e9f: Pull complete
aa7b15936229: Pull complete
04b1d7bd151d: Pull complete
Digest: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Status: Downloaded newer image for node:7.9.0
---> 90223b3d894e
Step 2/3 : COPY . /app
---> 2021694e684d
Removing intermediate container d49c59e28b08
Step 3/3 : WORKDIR /app
---> fbc14c07e266
Removing intermediate container 0a40d8f98dbf
Successfully built fbc14c07e266
Successfully tagged sim/nodehello-docker:late
运行容器
运行容器并将内部8888端口映射到外部的3001端口
docker run -d -p 3001:8888 sim/nodehello-docker node ./hi.js
访问容器内的Web服务