美文网首页
docker下的nodejs

docker下的nodejs

作者: krock01 | 来源:发表于2017-08-10 10:43 被阅读22次

    编辑于2016年,观看别人的博客后的笔记,原作者要是看到请联系我注明出处

    简单的docker 下nodejs web应用

    此应用用于开发环境

    第一步 :创建问一个新的文件夹,并在其中创建package.json 和server.js

    package.json
    {"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.13.3"}}
    
    server.js
    'use strict';const express = require('express');// Constantsconst PORT = 8080;// Appconst app = express();
    app.get('/', function (req, res) {
      res.send('Hello world\n');});
    
    app.listen(PORT);
    console.log('Running on http://localhost:' + PORT);
    
    

    第二步:创建一个dockerfile

    touch Dockerfile
    

    获取nodejs 版本为agon

    FROM node:argon
    

    创建应用的镜像空间文件夹

    # Create app directory
    RUN mkdir -p /usr/src/app
    WORKDIR /usr/src/app
    

    移动package.json /usr/src/app/ 并执行npm install

    # Install app dependenciesCOPY package.json /usr/src/app/
    RUN npm install
    

    绑定你的源代码到docker镜像

    # Bundle app sourceCOPY . /usr/src/app
    

    绑定端口8080 使其成为docker的映射

    EXPOSE 8080
    

    最后设置命令 npm start

    CMD ["npm","start"]
    

    文件内容如下

    FROM node:argon
    
    # Create app directoryRUN mkdir -p /usr/src/app
    WORKDIR /usr/src/app
    
    # Install app dependenciesCOPY package.json /usr/src/app/
    RUN npm install
    
    # Bundle app sourceCOPY . /usr/src/app
    
    EXPOSE 8080
    CMD [ "npm", "start" ]
    

    构建镜像

    -t 标记你的镜像为什么名称,最后一个.是当前目录

    $ docker build -t <your username>/node-web-app .
    

    使用docker images查看

    $ docker images
    
    # Example
    REPOSITORY                      TAG        ID              CREATED
    node                            argon      539c0211cd76    3 weeks ago
    <your username>/node-web-app    latest     d64d3505b0d2    1 minute ago
    

    执行镜像

    使用-d运行可以使你的应用后台运行 -p把私有的端口映射为公共端口

    $ docker run -p 49160:8080 -d <your username>/node-web-app
    

    使用以下命令查看

    # Get container ID
    $ docker ps# Print app output
    $ docker logs <container id># Example
    Running on http://localhost:8080
    

    如果你想进入应用目录环境

    # Enter the container
    $ docker exec -it <container id> /bin/bash
    

    测试

    获取docker的端口

    $ docker ps# Example
    ID            IMAGE                                COMMAND    ...   PORTS
    ecce33b30ebf  <your username>/node-web-app:latest  npm start  ...   49160->8080
    

    使用curl(如果没有安装:sudo apt-get install curl)

    $ curl -i localhost:49160
    
    HTTP/1.1 200 OK
    X-Powered-By: Express
    Content-Type: text/html; charset=utf-8
    Content-Length: 12
    Date: Sun, 02 Jun 2013 03:53:22 GMT
    Connection: keep-alive
    
    Hello world
    

    相关文章

      网友评论

          本文标题:docker下的nodejs

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