温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-09-09 14:51:18 来源:亿速云 阅读:135 作者:chen 栏目:云计算

本篇内容介绍了“如何制作多端口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的容器镜像”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI