最近研究微服务,使用Docker来进行部署应用。说实话docker是个好东西,只要编写好Dockerfile文件和docker-compose.yml文件,便能快速启动并运行相关服务。

调试过程中查看服务可以使用

docker ps


然而调试项目的时候必须输入一堆的ip和端口来,让人有点不爽。

咱们发挥技术人的优势,能用程序搞定的绝不手工,找了一通,发现下面这个命令可以查看应用名称和端口的对应关系。

docker ps --format "{{.Names}} {{.Ports}}"


便想到通过调用shell脚本的方式来获取内容,传送到前端页面进行展示!

话不多说,下面上核心代码:

@AutowiredHttpServletRequest request;@GetMapping({"", "/", "index"})public String index(Model model)throws IOException{// 输出docker应用映射端口String[] cmd = SystemUtils.IS_OS_WINDOWS ? new String[] {"cmd", "/C", "docker ps --format \"{{.Names}} {{.Ports}}\""}: new String[] {"/bin/sh", "-c", "docker ps --format \"{{.Names}} {{.Ports}}\""};Process ps = Runtime.getRuntime().exec(cmd);BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));Map<String, Set<String>> map = new TreeMap<>();String line;while ((line = br.readLine()) != null){String name = StringUtils.substringBefore(line, " ");Set<String> ports = new TreeSet<>();String portText = StringUtils.substringAfter(line, " ");for (String it : portText.split(",")){String port = StringUtils.substringBetween(it, ":", "->");if (StringUtils.isNotBlank(port)){ports.add(port.replace(":", ""));}}map.put(name, ports);}model.addAttribute("baseUrl", StringUtils.substringBeforeLast(request.getRequestURL().toString(), ":"));model.addAttribute("map", map);return "index";}

前端页面展示效果:


完整的代码请参考:

https://gitee.com/00fly/java-code-frame/tree/master/springboot-cache

-over-

Docker 服务端口一览相关推荐

  1. iptables配置docker服务端口访问限制

    服务器系统为 CentOS 7 PS:CentOS 7自带iptables,但不自带iptables-services,你有需要可以装,也可以不装,不影响本文的操作和阅读 遇到了一个需求,需要用ipt ...

  2. 阿里云-node服务(一)阿里云 ECS 的Docker法端口映射

    问题: 在我们使用docker启动node服务后,对外无法访问该pod的端口.下面我们说一下怎么解决. 这里有一个比较好的文章: 知乎文章 1.命令ifconfig 首先我们通过这个命令可以看见我们的 ...

  3. Docker服务开放了这个端口,服务器分分钟变肉机

    之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口.由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵 ...

  4. Docker服务开启TCP端口

    使用场景: 默认安装的Docker服务不支持远程连接,开启TCP端口后可以进行远程连接Docker 环境: CentOS Linux release 7.8.2003 (Core) 1.打开编辑: v ...

  5. openstack常用命令及控制节点端口一览

    [常用命令] 1,查看服务 openstack service list 2,查看endpoint openstack endpoint list, 3,查看域 openstack domain li ...

  6. linux修改容器内的mysql端口映射_修改docker容器端口映射的方法

    大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改 ...

  7. docker 添加端口映射_Docker容器修改端口映射

    对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置文件修改docker容器端口映射 1.使用docker ps -a命令找到要修改容器的CONTAINER ...

  8. Docker 使用Dockerfile构建自己的docker服务(三)

    先介绍一下DockerFile文件的一些指令说明 DockerFile的指令 FROM 基础镜镜像,一切从这里开始构建 MAINTAINER 镜像是谁写的,姓名+邮箱 RUN 镜像构建的时候需要运行的 ...

  9. docker 2376端口 CA 认证,并不能阻止服务器成为肉鸡

    看网上很多评论:自签CA证书,生成服务器CA签名证书,和客户端CA签名证书:docker服务端配置服务器CA签名证书,允许docker远程控制的客户端,配置客户端CA:只有该客户端CA签名证书才能远程 ...

最新文章

  1. 让汽车软件进入 iPhone 时代!
  2. 互联网1分钟 |1120
  3. Slax Linux安装——备忘篇
  4. ICCV2015上的GazeTracker论文总结
  5. ps流 转发_RTP协议全解析(H264码流和PS流)(转)
  6. Java——IO(打印流)
  7. 2017.9.8 字符串 失败总结
  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
  9. TensorFlow可以“预装”数据集了,新功能Datasets出炉
  10. 下载DirectX 9 SDK开发包
  11. 屏幕尺寸、分辨率、像素密度三者关系
  12. 基于XSSFWorkbook 实现POI设置指定列为文本格式
  13. KDA的新宠儿,金贝KD6,更大算力,探索无限可能
  14. 1688商品详情api接口
  15. 关于防止表单重复提交
  16. 工业元宇宙三人行系列直播活动第五场在北京举办
  17. linux RAID管理与恢复误删除文件
  18. linux 时间 find,linux find 时间time
  19. 大数据赋能,如何精细化运营?
  20. react ts环境搭建及ts格式写法

热门文章

  1. 高性能网络I/O框架-netmap源码分析
  2. java鲁滨逊漂流记安卓_鲁滨逊漂流记java安卓,鲁滨逊漂流记摘抄加赏析
  3. Latex调整表格宽度
  4. 2012盘点“孔子”周润发的经典语录年度经典语录励志天
  5. linux查找文件内容包含add的文件,Linux环境变量与文件查找教程
  6. java计算机毕业设计基于安卓Android的校园流浪猫收养app
  7. asp.net 插入视频
  8. Web 2.0的八个核心模式与成功技巧
  9. 硬件FOC伺服控制芯片TMC4617适应永磁同步伺服/直流无刷伺服/直流有刷伺服/闭环步进/音圈电机
  10. Failed to configure a DataSource: ‘url’ attribute is not specified and no embedd