如何制作多端口httpserver的容器镜像

本篇内容介绍了“如何制作多端口httpserver的容器镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

站在用户的角度思考问题,与客户深入沟通,找到英吉沙网站设计与英吉沙网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册雅安服务器托管、企业邮箱。业务覆盖英吉沙地区。

  1. 创建/root/myapp目录

    [root@xbldockerbuild myapp]# tree /root/myapp
    /root/myapp
    ├── Dockerfile
    └── src
        └── app.js
    
    1 directory, 2 files

     

  2. 其中app.js和Dockerfile 内容如下

    [root@xbldockerbuild myapp]# cat src/app.js 
    var http=require('http');
    var ports = [7006, 7007, 7008, 7009];
    var servers = [];
    var s;
    function reqHandler(req, res) {
        var serPort=req.socket.localPort;
        res.writeHead(200, {'Content-Type':'text/plain'});
        res.write('Listening on port ' + serPort);
        res.end();
    }
    ports.forEach(function(port) {
        s = http.createServer(reqHandler);
        s.listen(port);
        servers.push(s);
    });

    [root@xbldockerbuild myapp]# cat Dockerfile 
    FROM alpine:3.8
    RUN apk update
    RUN apk add --no-cache nodejs
    COPY ./src /app
    CMD ["/usr/bin/node", "/app/app.js"]
    EXPOSE 7006/tcp
    EXPOSE 7007/tcp
    EXPOSE 7008/tcp
    EXPOSE 7009/tcp

     

  3. docker build 制作容器镜像

    [root@xbldockerbuild myapp]# docker build -t alpine-node-multiple-ports:v1 .
    Sending build context to Docker daemon 3.584 kB
    Step 1/9 : FROM alpine:3.8
     ---> dac705114996
    Step 2/9 : RUN apk update
     ---> Using cache
     ---> a822afa9e3ed
    Step 3/9 : RUN apk add --no-cache nodejs
     ---> Using cache
     ---> 325de7d2e3a6
    Step 4/9 : COPY ./src /app
     ---> Using cache
     ---> 177b34cc5674
    Step 5/9 : CMD /usr/bin/node /app/app.js
     ---> Using cache
     ---> 3c1f8e2407dc
    Step 6/9 : EXPOSE 7006/tcp
     ---> Running in 925b1e84e222
     ---> eaa8e957002d
    Removing intermediate container 925b1e84e222
    Step 7/9 : EXPOSE 7007/tcp
     ---> Running in 3bed5ab873f2
     ---> 36a58dc9fa46
    Removing intermediate container 3bed5ab873f2
    Step 8/9 : EXPOSE 7008/tcp
     ---> Running in d059f2383111
     ---> 3c8f23df8971
    Removing intermediate container d059f2383111
    Step 9/9 : EXPOSE 7009/tcp
     ---> Running in 095a0e5748c1
     ---> 5c04fe5beb8c
    Removing intermediate container 095a0e5748c1
    Successfully built 5c04fe5beb8c
    
    [root@xbldockerbuild myapp]# docker images
    REPOSITORY                                                   TAG                 IMAGE ID            CREATED             SIZE
    alpine-node-multiple-ports                                   v1                  5c04fe5beb8c        41 seconds ago      32.6 MB

  4. 创建容器测试

    [root@xbldockerbuild myapp]# docker run -d -it --name httpserver alpine-node-multiple-ports:v1
    d511b5157cbdc40da55623cbf6a3c20a0317eac3e52c3239236ae1c514536044
    [root@xbldockerbuild myapp]# docker ps -a |grep httpserver
    d511b5157cbd        alpine-node-multiple-ports:v1                                "/usr/bin/node /ap..."   27 seconds ago      Up 26 seconds             7006-7009/tcp            httpserver
    [root@xbldockerbuild myapp]# docker inspect httpserver | grep IPAddress
                "SecondaryIPAddresses": null,
                "IPAddress": "172.17.0.6",
                        "IPAddress": "172.17.0.6",
    [root@xbldockerbuild myapp]# curl http://172.17.0.6:7006/
    Listening on port 7006
    [root@xbldockerbuild myapp]# curl http://172.17.0.6:7007/
    Listening on port 7007
    [root@xbldockerbuild myapp]# curl http://172.17.0.6:7008/
    Listening on port 7008
    [root@xbldockerbuild myapp]# curl http://172.17.0.6:7009/
    Listening on port 7009

“如何制作多端口httpserver的容器镜像”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


标题名称:如何制作多端口httpserver的容器镜像
标题来源:http://myzitong.com/article/psggoe.html