美文网首页Docker容器
在docker中創建自己的node-demo

在docker中創建自己的node-demo

作者: 脫兔 | 来源:发表于2018-03-20 12:21 被阅读0次

    創建一個node.js App

    首先創建 一個文件夾,名字為docker-node-demo

    編寫package.json

    進入docker-node-demo文件夾,創建package.json文件
    這裡使用基於express4.16的node app

    {
      "name": "docker_web_app",
      "version": "1.0.0",
      "description": "Node.js on Docker",
      "author": "First Last <first.last@example.com>",
      "main": "server.js",
      "scripts": {
        "start": "node server.js"
      },
      "dependencies": {
        "express": "^4.16.1"
      }
    }
    
    

    運行npm install,此時會出現package-lock.json文件和node_modules文件夾

    編寫 server.js

    創建server.js文件,

    'use strict';
    
    const express = require('express');
    
    // Constants
    const PORT = 8080;
    const HOST = '0.0.0.0';
    
    // App
    const app = express();
    app.get('/', (req, res) => {
      res.send('Hello world\n');
    });
    
    app.listen(PORT, HOST);
    console.log(`Running on http://${HOST}:${PORT}`);
    

    這裡主要是設置端口,路由等等,以及運行的時候會在控制台輸出一句
    Running on http://${HOST}:${PORT}

    編寫Dockerfile文件

    創建一個名為Dockerfile的文件,文件沒有後綴
    根據官方,是使用版本為carben的node

    FROM node:carbon
    
    # Create app directory
    WORKDIR /usr/src/app
    
    # Install app dependencies
    # A wildcard is used to ensure both package.json AND package-lock.json are copied
    # where available (npm@5+)
    COPY package*.json ./
    
    RUN npm install
    # If you are building your code for production
    # RUN npm install --only=production
    
    # Bundle app source
    COPY . .
    
    EXPOSE 8080
    CMD [ "npm", "start" ]
    

    創建 .dockerignore 文件

    這個文件的作用和.git差不多,目的是讓docker打包的時候略過部分文件

    node_modules
    npm-debug.log
    

    創建 image

    這裡需要在docker中操作windows目錄下的文件

    • 先將docker-node-demo文件夾設置分享,具體操作傳送門:https://www.jianshu.com/p/cf03495a59f7
      使用Xshell連接docker,並且掛載分享目錄,完成之後進入到分享目錄
    • 開始build一個名為docker-node-demo的image
      docker build -t docker-node-demo .
    • 查看image
      docker images
      可以看到已經多出來一個image了
    • 運行image
      docker run -p 3000:8080 -d docker-node-demo
      這裡的意思是將image中8080端口映射到本地3000端口
    • 打開網頁
      理所當然的打開http://localhost:3000/發現什麼都沒有運行起來,一番搜尋之後發現,我們在linux環境中運行的localhost並非windows的localhost,但是通常都可以通過這個IP訪問192.168.99.100
      即可以通過192.168.99.100:3000訪問app的頁面

      一個小的node-demo完成了!

    參考資料:

    相关文章

      网友评论

        本文标题:在docker中創建自己的node-demo

        本文链接:https://www.haomeiwen.com/subject/siwvqftx.html