本篇内容介绍了“如何制作多端口httpserver的容器镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创建/root/myapp目录
[root@xbldockerbuild myapp]# tree /root/myapp
/root/myapp
├── Dockerfile
└── src
└── app.js
1 directory, 2 files
其中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
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
创建容器测试
[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的容器镜像”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4186048/blog/3103046