• 售前

  • 售后

热门帖子
入门百科

Docker摆设Node.js的方法步骤

[复制链接]
淡情惜缘缘wt 显示全部楼层 发表于 2021-10-25 20:01:26 |阅读模式 打印 上一主题 下一主题
前言
项目中会用到node做中间层,摆设node则是用到了docker,在这里总结、记录下摆设要点和步调;关于docker的介绍和安装这里就不赘述了,网上也有许多相干的教程和文章了,需要可自行搜索检察。
项目结构
  1. `-- docker-node
  2.   |-- data
  3.   |-- server
  4.     |-- app.js
  5.     |-- Dockerfile
  6.     |-- process.yml
  7.     |-- package.json
  8.   |-- docker-compose.yml
复制代码
1、创建Node.js步伐
app.js
  1. const express = require('express');
  2. const app = express();
  3. app.get('/', (req, res) => res.send('hello world!'));
  4. app.listen(3008);
复制代码
2、创建Dockerfile
  1. FROM node:8.9-alpine
  2. RUN mkdir -p /usr/src/app
  3. WORKDIR /usr/src/app
  4. RUN npm set registry https://registry.npm.taobao.org/
  5. RUN npm install
  6. CMD ["./node_modules/pm2/bin/pm2-docker", "process.yml"]
复制代码
从Dockerfile中可以看到我们是通过pm2-docker运行node应用的,利用PM2我们可以监听文件变化,达到应用重启、日记分存等效果;这里我们需要一个process.yml的设置文件,相干用法可以检察PM2文档。
process.yml
  1. apps:
  2. - script  : 'app.js'
  3.   name   : 'dokcer-node'
  4.   exec_mode: 'fork'
  5.   watch  : true
  6.   instances: 1
  7.   log_date_format : 'YYYY-MM-DD HH:mm Z'
  8.   ignore_watch: ['node_modules']
复制代码
3、创建docker-compose.yml
生产情况上我们用到通常不但一个容器,我们可以通过一个设置文件来管理多个Docker容器,然后使用docker-compose来启动,停止、重启应用。
docker-compose.yml
  1. version: "3.0"
  2. services:
  3. server_node:
  4.   container_name: server-node
  5.   build:
  6.    context: ./server
  7.   volumes:
  8.    - ./server:/usr/src/app
  9.   ports:
  10.    - "3008:3008"
  11.   environment:
  12.    - TZ=Asia/Shanghai
  13. portainer:
  14.   image: portainer/portainer:1.11.4
  15.   container_name: portainer
  16.   expose:
  17.    - "9000"
  18.   ports:
  19.    - "9000:9000"
  20.   volumes:
  21.    - /var/run/docker.sock:/var/run/docker.sock
  22.    - ./data/portainer:/data
  23.   environment:
  24.    - TZ=Asia/Shanghai
复制代码
4、启动容器
上述几个文件创建完毕,我们执行下面的命令,则会创建我们的镜像并且启动容器
  1. $ docker-compose -f docker-compose.yml up -d
复制代码
5、测试
1、访问本地的3008端口


2、测试当代码变化,node自动重启功能,我们把"hello world!"改为"restart!!!!",再次刷新页面


3、利用Portainer管理容器;可视化的界面相比命令行来说,我们可以很方便、快速检察容器日记、容器设置、状态、以及对举行重启、删除等操纵;我们访问本地9000端口即可(docker-compese.yml中设置),结果如下。


以上就是本文的全部内容,盼望对各人的学习有所资助,也盼望各人多多支持草根技术分享。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作