Docker实战:Docker部署Portracker端口监控和发现工具
Docker实战:Docker部署Portracker端口监控和发现工具
1.1 Portracker简介
1.2 Portracker主要特点
2.1 本地环境规划
2.2 本次实践介绍
3.1 检查Docker服务状态
3.2 检查Docker版本
3.3 检查docker compose 版本
5.1 创建部署目录
5.2 编辑部署文件
5.3 创建Portracker容器
5.4 查看Portracker容器状态
5.5 检查Portracker容器日志
6.1 访问Portracker首页
6.2 添加服务器
一、Portracker介绍
1.1 Portracker简介
Portracker是一款轻量级、自包含的网络服务发现与监控工具,通过自动扫描系统服务,实时生成准确的网络端口地图,帮助用户消除手动跟踪的繁琐,避免因端口冲突导致的部署问题,特别适用于服务器、容器和虚拟机环境的统一可视化管理。
1.2 Portracker主要特点
自动端口发现:自动扫描主机并识别正在运行的服务及其监听端口,无需手动录入数据。
特定平台的收集器:内置针对 Docker 和 TrueNAS 的专用收集器,获取更丰富的运行环境信息。
内部端口检测:清晰区分容器内部端口与主机发布端口,全面掌握容器化服务的网络暴露情况。
轻量级且自包含:以单一进程运行,内置 SQLite 数据库,无需依赖外部数据库如 PostgreSQL 或 Redis。
点对点监控:可将多个 Portracker 实例添加为对等节点,实现跨服务器、容器和虚拟机的集中视图管理。
层次化分组:支持父-子结构组织服务器,便于管理虚拟机与其物理主机等嵌套关系。
增强的 TrueNAS 发现:通过可选的 TrueNAS API 密钥,自动发现运行中的虚拟机并获取系统详情如 OS 版本和运行时间。
现代 & 响应式用户界面:提供简洁美观的仪表板,支持深色/浅色模式、实时搜索和多种数据展示布局(列表、网格、表格)。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
hostname IP地址 操作系统版本 Docker版本 部署项目 jeven01 192.168.3.88 Ubuntu 24.04.2 LTS 28.3.3 Portracker
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.在Docker环境下部署Portracker端口监控和发现工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-08-04 10:10:52 UTC; 30min ago
TriggeredBy: ● docker.socket
Main PID: 860 (dockerd)
Tasks: 10
Memory: 97.2M (peak: 98.4M)
CPU: 606ms
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.3.3, build 980b856
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker -v
Docker version 28.3.3, build 980b856
四、拉取Portracker镜像
下载Portracker容器镜像,如下所示
docker pull mostafawahied/portracker:latest
在这里插入图片描述
在这里插入图片描述
五、部署Portracker服务
5.1 创建部署目录
创建部署目录
mkdir -p /data/portracker && cd /data/portracker
5.2 编辑部署文件
在部署目录下,创建docker-compose.yaml文件,内容如下所示:
vim docker-compose.yaml
services:
portracker:
image: mostafawahied/portracker:latest
container_name: portracker
restart: unless-stopped
pid: "host" # Required for port detection
# Required permissions for system ports service namespace access
cap_add:
- SYS_PTRACE # Linux hosts: read other PIDs' /proc entries
- SYS_ADMIN # Docker Desktop: allow namespace access for host ports (required for MacOS)
security_opt:
- apparmor:unconfined # Required for system ports
volumes:
# Required for data persistence
- ./portracker-data:/data
# Required for discovering services running in Docker
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "4999:4999"
# environment:
# Optional: For enhanced TrueNAS features
# - TRUENAS_API_KEY=your-api-key-here
5.3 创建Portracker容器
执行以下命令,创建Portracker容器。
docker compose up -d
在这里插入图片描述
在这里插入图片描述
5.4 查看Portracker容器状态
检查Portracker容器运行状态,确保Portracker容器正常启动。
root@jeven:/data/portracker# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
portracker mostafawahied/portracker:latest "docker-entrypoint.s…" portracker About a minute ago Up About a minute (healthy) 0.0.0.0:4999->4999/tcp, [::]:4999->4999/tcp
5.5 检查Portracker容器日志
检查容器运行日志,确保Portracker服务正常运行。
在这里插入图片描述
六、访问Portracker服务
6.1 访问Portracker首页
浏览器地址:
http://<个人的服务器IP>:4999,访问Portracker首页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。
在这里插入图片描述在这里插入图片描述
6.2 添加服务器
在Portracker的左下角,选择“Add Server”选项,添加多台服务器进行统一管理。
在这里插入图片描述在这里插入图片描述
基本配置:
Server Name:自定义服务器名称
Server URL:填写需要添加的Portracker服务器地址,例如 http://192.168.3.83:4999
在这里插入图片描述在这里插入图片描述
在这里插入图片描述七、总结
通过本次实践,我们成功使用Docker部署了Portracker端口监控和发现工具,实现了对系统服务端口的自动化发现与可视化管理。Portracker轻量且自包含的特性使其部署简单高效,无需依赖外部数据库,非常适合用于本地或小型环境的网络监控。其现代化的Web界面和对Docker、TrueNAS等平台的原生支持,大大提升了服务管理的便捷性与准确性。通过Portracker,用户可以有效避免端口冲突,提升部署效率,是运维管理中的实用利器。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

