Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

使用Docker中构建Node.js服务

$
0
0

1 设置环境 2 创建docker镜像 3 定义服务 4 构建并且运行Node.js应用 5 体验docke-compose的其它特性

####设置构建环境 设置构建环境很简单,准备好需要的文件,放在一个文件夹下就可以,也可以直接在项目的根目录下进行设置,这样就可以和(webstrom,idea)IDE或者编辑器(sublime,atom)整合,应用就可以整合到容器中

创建构建文件夹

➜  ~ mkdir -p ~/docker/nodejs/web

创建Dockerfile

FROM ubuntu:16.04
COPY ./sources.list /etc/apt/sources.list
RUN apt-get update && apt-get install -y \
    curl \
    apt-utils \
    sudo \
    apt-transport-https \
    ca-certificates \
    apt-utils \
 && curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - \
 && apt-get update  \
 && apt-get install -y nodejs
ADD . /code
WORKDIR /code
CMD node  app.js

创建app.js


const http = require('http');

const hostname = '0.0.0.0';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Welcome to the node-ubuntu container\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

####创建docker镜像 如果在定义服务那一步直接指定镜像,这一步也可以省略,镜像存在的话就不需要再构建,也可以直接pull远程镜像

➜  ~ docker build -t node-ubuntu:latest .

####定义服务 创建docker-compose.yaml文件,定义一个web服务,并转发3000端口到容器的3000端口,分配当前目录作为容器/code的数据卷

 version: '2'
 services:
   web:
     build: .
     ports:
      - "3000:3000"
     volumes:
      - .:/code

####使用docker-compose构建并且运行Node.js应用 可以使用-d选项放在后台运行

➜  ~ docker-compose up 

接下来就可以在浏览器输入127.0.0.1:3000访问Node.js应用

http://127.0.0.1:3000

####体验docke-compose的其它特性 如果你的镜像已经构建完成,你不必每次都要构建镜像后再运行服务,可以很简单的停止和启动容器

➜  ~ docker-compose stop #停止服务
➜  ~ docker-compose pause #暂停服务
➜  ~ docker-compose start #启动服务
➜  ~ docker-compose restart #重启服务

你也可以在服务容器运行命令

➜  ~ docker-compose run web env

Github有兴趣的可以一起学习哈 MyFreax


Viewing all articles
Browse latest Browse all 14821

Trending Articles