01-Docker实战,搭建NodeJs环境

字数 142阅读 2720

目的

实现简单的docker的nodejs容器,使用Dockerfile构建我们的使用nodejs开发的系统

技术栈

  • Docker
  • Nodejs
  • Express
  • Linux

step1 下拉nodejs基础容器 node:

本次我需要使用基础alpine操作系统构建的node基础容器


image.png

step2 创建项目文件夹

创建一个空目录,并且创建如下文件

root@ubuntu-docker:/server/nodejs# ls
Dockerfile  package.json  server.js
image.png

Dockerfile内容

FROM node:6.10.2-alpine
ADD . /server/www/
WORKDIR /server/www/
RUN cd /server/www && npm install
EXPOSE 3001
CMD ["node","server.js"]

package.json内容

{
  "name": "docker-node-hello",
  "private": true,
  "version": "0.0.1",
  "description": "Node.js with docker",
  "author": "zhaojunlike@gmail.com",
  "dependencies": {
    "express": "3.2.4"
  }
}

server.js app的入口文件

var express = require('express');

// Constants
var PORT = 3001;

// App
var app = express();
app.get('/', function (req, res) {
  res.send('Hello World\n');
});

app.listen(PORT)
console.log('Running on http://localhost:' + PORT);

step3 build

使用以下命令来构建node-app容器

#docker build -t node-hello ./
image.png

step4 运行测试

root@ubuntu-docker:/server/nodejs# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
node-hello                                             latest              58a5182bd055        40 seconds ago      56.34 MB
root@ubuntu-docker:/server/nodejs# docker run -d -p 3001:3001 node-hello
0af03634720b3572e860b9d353fd140b88f729e938713f3c4fc694cfda3ec065
root@ubuntu-docker:/server/nodejs# curl localhost:3001
Hello World
root@ubuntu-docker:/server/nodejs# 

本节学习源码:https://github.com/zhaojunlike/docker-node-hello

推荐阅读更多精彩内容