运维必备:如何用Docker快速搭建Portall,实现端口资源可视化管控

简介: 运维必备:如何用Docker快速搭建Portall,实现端口资源可视化管控

一、 Portall介绍

1.1 Portall简介

Portall是一个功能强大的Web界面工具,它为用户提供了一个简便的方法来跨多个主机管理端口和服务。这个应用程序对于那些需要同时处理多个网络服务或应用程序,并且希望简化端口配置流程的IT专业人员、开发者以及系统管理员来说非常有用。

1.2 核心特点

  • 轻松的端口管理:用户可以很容易地添加新的端口,删除不再需要的端口,并将它们分配给不同的服务和主机。
  • 端口号生成:Portall 能够快速生成唯一的端口号,以避免端口冲突问题,确保您的应用能够顺利运行。
  • 导入工具:支持通过粘贴 Caddyfile, Docker-Compose 文件或 JSON 数据等方式快速导入现有配置信息,从而加快设置过程。
  • 自定义规则:允许用户根据自己的需求设定特定的端口范围,并在端口生成过程中排除某些不可用或者已经占用的端口号。
  • 块级设计:采用直观的拖放机制,方便用户组织端口并在不同主机之间移动应用。
  • 主题选择:目前提供了浅色和深色两种主题模式,并计划在未来推出更多个性化选项。
  • CSS 自定义:开放了 CSS 定制接口,允许有经验的用户自行调整UI样式,实现高度个性化的视觉体验。
  • 移动响应式布局:无论是在桌面还是移动设备上使用,都能获得良好的用户体验,保证随时随地都可以高效地进行端口管理。

1.3 主要使用场景

  1. 开发环境配置:当开发者需要为多个项目创建独立的服务时,Portall 可以帮助他们迅速完成端口配置工作。
  2. 微服务架构部署:对于采用了微服务架构的企业而言,Portall 有助于更有效地管理和跟踪各个微服务所使用的端口情况。
  3. 容器化应用部署:与Docker等容器技术结合使用时,Portall 能够简化容器间通信所需的端口映射配置。
  4. 多租户平台管理:提供托管服务的公司可以利用Portall来优化其内部资源分配,特别是在面对大量客户请求时更加显得重要。
  5. 网络安全审计:安全团队可以通过Portall监控整个网络中所有开放端口的状态,及时发现潜在的安全隐患。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。

hostname IP地址 操作系统版本 Docker版本 镜像版本
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 latest

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Portall应用。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-09-09 10:43:35 CST; 3 weeks 5 days ago
       Docs: https://docs.docker.com
   Main PID: 695 (dockerd)
      Tasks: 135 (limit: 9387)
     Memory: 4.0G
        CPU: 46min 46.854s
     CGroup: /system.slice/docker.service
             ├─  695 /usr/bin/dockerd
             ├─  846 containerd --config /var/run/docker/containerd/containerd.toml

3.2 检查Docker版本

检查Docker版本

root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.19.1

四、下载Portall镜像

拉取Portall镜像,镜像名称为:need4swede/portall:latest。

root@jeven01:~#  docker pull need4swede/portall:latest
latest: Pulling from need4swede/portall
f11c1adaa26e: Pull complete
c1f67e58a3d2: Pull complete
9370038d1185: Pull complete
174cb52e37e5: Pull complete
f259657f3656: Pull complete
8c7ba33c7383: Pull complete
1b1e330f6e57: Pull complete
584bbec0a7bd: Pull complete
f0649a86b5c0: Pull complete
Digest: sha256:8f15ad65667aff4221fcc7c13b2c9ff663b56d96fe4c0b4d7c512b678df557ac
Status: Downloaded newer image for need4swede/portall:latest
docker.io/need4swede/portall:latest

五、部署Portall应用

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/portall && cd /data/portall

5.2 编辑部署文件

  • 如果使用docker-cli部署,可参考以下命令:
docker run -d \
   --restart always \
   --name portall \
   -p 9900:8080 \
   -v /data/portall/data:/app/instance \
   -e PORT=8080 \
   -e SECRET_KEY=K8dCmZnXa3LQbPfRtGjW \
   need4swede/portall:latest

在`部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。

vim docker-compose.yaml
version: '3'

services:
  rediary:
    image: need4swede/portall:latest
    container_name: portall
    restart: always 
    ports:
      - 9900:8080
    volumes:
      - /data/portall/data:/app/instance
    environment:
      - PORT=8080
      - SECRET_KEY=K8dCmZnXa3LQbPfRtGjW

5.3 创建Portall容器

执行以下命令,创建Portall容器。

root@jeven01:/data/portall# docker compose up -d
[+] Running 2/2
 ✔ Network portall_default  Created                                                                                                                      0.1s
 ✔ Container portall        Started                                                                                                                      0.3s

5.4 查看Portall容器状态

检查Portall容器状态状态,确保Portall容器正常启动。

root@jeven01:/data/portall# docker compose ps
NAME                IMAGE                       COMMAND             SERVICE             CREATED             STATUS              PORTS
portall             need4swede/portall:latest   "python app.py"     rediary             25 seconds ago      Up 24 seconds       0.0.0.0:9900->8080/tcp, :::9900->8080/tcp

5.5 查看Portall容器日志

检查Portall容器日志,确保Portall服务正常运行。

root@jeven01:/data/portall# docker compose logs
portall  | INFO:root:Existing database found.
portall  | INFO:root:No migrations folder found. Ensuring all tables exist...
portall  | INFO:root:Database tables verified/created.
portall  | INFO:root:Starting Portall on port 8080 with debug mode: False
portall  |  * Serving Flask app 'app'
portall  |  * Debug mode: off
portall  | INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
portall  |  * Running on all addresses (0.0.0.0)
portall  |  * Running on http://127.0.0.1:8080
portall  |  * Running on http://192.168.144.2:8080
portall  | INFO:werkzeug:Press CTRL+C to quit

在这里插入图片描述

六、访问Portall服务

6.1 访问Portall初始页

访问地址:http://192.168.3.88:9900,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

在这里插入图片描述

6.2 生成随机端口

新增IP地址,将宿主机本地IP填写即可。

在这里插入图片描述

填写描述信息,确认生成新随机端口。

在这里插入图片描述

在这里插入图片描述

  • 查看ports列表

在这里插入图片描述

6.3 生成新端口

  • 在ports管理模块中,点击“+”号,自行添加端口。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、总结

通过Docker部署Portall自托管端口管理系统,我们显著简化了服务器端口的管理流程。利用Docker容器化技术,我们能够快速搭建和配置Portall环境,确保了系统的一致性和可移植性。使用Docker Compose进行多容器管理,不仅简化了服务的启动和维护,还使得依赖项的安装和配置变得轻松。最终,团队能够更方便地监控和管理服务器端口,提高了网络资源的利用率和整体系统的安全性。

相关文章
|
新零售 人工智能
阿里巴巴联合汉仪重磅推出五款人工智能字体:汉仪天真体、英雄体等
众所周知传统做字的人力成本非常之高,如果全靠人类设计师来完成,一套标准字库从设计到完成需要一年多的时间。
13930 0
|
18天前
|
弹性计算 人工智能 编解码
阿里云服务器多少钱一年?2026年9月20日最新优惠服务器配置排行榜,共10台!
2026年9月阿里云服务器优惠来袭!轻量应用服务器低至¥38/年,ECS多款高性价比配置上榜。涵盖入门博客、企业官网、AI推理、GPU渲染等全场景,新老用户同价,支持三年付与地域折扣,助您省钱上云。(239字)
220 1
|
1月前
|
机器学习/深度学习 运维 算法
深度注意力SMOTE:一种增强版本的SMOTE算法
该研究将传统过采样技术与深度学习相结合,提出了一种增强版本的SMOTE方法——深度注意力SMOTE(DA-SMOTE-ED)。该方法致力于克服传统过采样在边界区域盲目插值容易引入噪声的缺陷,为不平衡时间序列数据的异常检测提供了一种技术路径。
|
10天前
|
存储 安全 算法
数据安全合规双驱动下,值得信赖的国内数据治理厂商推荐
2026年,企业数据治理面临合规与安全双重压力。阿里云瓴羊Dataphin以OneData方法论为基础,将安全合规能力内嵌于全链路治理中:通过等保三级、ISO 27001/27018等权威认证;支持自动分类分级、查询/写入双模脱敏、字段级权限与行级管控;并已在上汽大众等头部企业落地验证,实现敏感数据动态防护与全程审计。(239字)
|
1月前
|
存储 Ubuntu 数据安全/隐私保护
【Docker项目实战】使用Docker部署Notepad轻量级记事本
【Docker项目实战】使用Docker部署Notepad轻量级记事本
206 0
【Docker项目实战】使用Docker部署Notepad轻量级记事本
|
1月前
|
数据采集 数据可视化 API
户外运动装备:用API分析品牌溢价与功能性价比
本文通过调用商品、参数与评论API,采集户外冲锋衣等装备数据,构建回归模型量化品牌溢价,并设计功能得分与性价比评估体系,助力消费者摆脱品牌迷思,实现理性选购。(239字)
|
1月前
|
人工智能 IDE Java
Qoder CN v1.4.1完整实战指南:Agent式AI编程全流程拆解与企业落地教程
2026年,原有通义灵码完成品牌升级,正式命名Qoder CN,当前稳定版本为v1.4.1。该产品跳出传统IDE插件仅做代码片段补全的定位,升级为Agentic全栈智能编程平台。市面上部分海外同类工具更多聚焦编辑辅助,而Qoder CN依托Quest自主任务、多文件Agent编辑、Repo项目知识库三大核心能力,可以实现从业务需求输入、方案设计、批量编码、自测验证到项目文档沉淀的端到端自主研发闭环。本文结合SpringBoot项目迁移、微服务拆分、分库分表改造、单元测试批量生成四类企业真实业务场景,完整讲解多端安装部署、百炼大模型接入、三级编码Rules规则、四种开发模式、MCP外部工具扩展、
257 0
|
设计模式 人工智能 编解码
突破效率边界:VTJ.PRO以AI+低代码重塑企业数字化生产力
VTJ.PRO是新一代AI驱动的低代码平台,通过可视化开发架构提升企业应用构建效率。支持零编码设计、多模态渲染、响应式布局与智能AI辅助,助力企业加速数字化转型,显著缩短开发周期并降低维护成本。
471 0
|
安全 网络安全 数据安全/隐私保护
HTTPS 请求中的证书验证详解(Python版)
HTTPS 请求中的证书验证详解(Python版)
1240 0
数据包络分析(DEA)
数据包络分析方法(Data Envelopment Analysis,DEA)是评价多输入指标和多输出指标的较为有效的方法,将多投入与多产出进行比较,得到效率分析,可广泛使用于业绩评价。
1960 0
数据包络分析(DEA)

热门文章

最新文章