• docker部署nodejs应用


    1. 在 /home 下,先赋予当前用户读写权限,chmod 777 ./nodejs/  ,然后新建/nodejs/demo1文件夹和 /nodejs/Dockerfile文件,

    /nodejs/demo1文件夹 用来放项目源码

    /nodejs/Dockerfile文件自动化跑脚本

    2.demo1文件夹下,有server.js、package.json

    // server.js
    const Koa = require('koa');
    const app = new Koa();
    
    app.use(async ctx => {
       ctx.body = 'Hello docker';
    });
    
    app.listen(8081);

    package.json

    {
     "name": "demo1",
     "version": "1.0.0",
     "private": true,
     "scripts": {
       "start": "node server.js"
     },
     "dependencies": {
       "koa": "^2.5.0"
     }
    }

    3. Dockerfile

    FROM node:8.9-alpine
    
    # 作者
    MAINTAINER fengnovo
    
    # 执行命令,创建文件夹
    RUN mkdir -p /home/nodejs/demoProject1
    
    # 将demoProject1目录拷贝到镜像里
    ADD ./demo1 /home/nodejs/demoProject1
    
    # 指定工作目录
    WORKDIR /home/nodejs/demoProject1
    
    # 安装依赖及构建node应用
    RUN npm install
    # RUN npm build
    
    # 配置系统变量,指定端口
    ENV HOST 0.0.0.0
    ENV PORT 8081
    
    #对外暴露的端口
    EXPOSE 3000
    
    #程序启动脚本
    CMD ["npm", "start"]
    

    4.在nodejs目录下运行

    docker build -t demo1 .

    5. 完了,再运行

     

    docker images

     可以看到

    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

    demo1               latest              9ec9bfe046e8        About a minute ago   69.5MB

     

    6.完了,再运行,下面是将8081映射到8080端口

     

    docker run -d -p 8080:8081 demo1

     

    可以看到

    99288344034ca2093ad2e9a558e3c5d0bb25f6ec882f93ce2e4bc2e041819a83

     

    docker ps  可以看到

     

    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES

    99288344034c        demo1               "npm start"              9 seconds ago   Up 8 seconds    0.0.0.0:8080->8081/tcp   wonderful_murdock

    7.验证

    curl -i localhost:8080

     浏览器也可以输入xxx.xxx.xxx.xxx(ip):8080

  • 相关阅读:
    Asp.Net MVC Control向View传值
    初学MyBatis.net
    win10更新后,可以远程桌面ping也没问题,但是无法访问共享文件夹的解决方法
    我的常用自定义函数
    获取图片大小
    python获取文件路径、文件名、后缀名的实例
    Python-Selenium中chromeDriver限制图片和Javascript加载
    精华 selenium_webdriver(python)调用js脚本
    安装程序无法使用现有分区 因为它没有包含所需的空间?怎么办?
    我们无法创建新的分区 也找不到现有的分区 已解决【亲测有效】
  • 原文地址:https://www.cnblogs.com/fengnovo/p/10099663.html
Copyright © 2020-2023  润新知