RTVS 1.3.0 阿里云 CentOS 7.8 部署实战:5分钟完成 Docker 网络与端口映射配置

RTVS 1.3.0 阿里云 CentOS 7.8 部署实战:5分钟完成 Docker 网络与端口映射配置
RTVS 1.3.0 阿里云 CentOS 7.8 部署实战5分钟完成 Docker 网络与端口映射配置在视频监控与智能交通领域JT1078和GB28181协议已成为行业标准。本文将带您快速在阿里云CentOS 7.8环境下部署RTVS 1.3.0视频平台重点解决Docker网络配置与端口映射这两个关键环节。无论您是运维工程师还是开发人员只需跟随本文步骤5分钟内即可完成核心配置。1. 环境准备与基础配置1.1 阿里云ECS实例创建首先登录阿里云控制台创建CentOS 7.8实例。建议选择以下配置实例规格计算优化型c6.large2vCPU 4GiB系统盘高效云盘 40GB网络类型专有网络VPC创建完成后在安全组中预先放行以下端口范围端口类型端口范围协议用途说明TCP6001-6020TCP设备接入与媒体流端口TCP17000TCPWebSocket客户端连接TCP30888TCPHTTP管理界面UDP14001-14010UDPWebRTC媒体传输提示实际生产环境应根据设备数量调整端口范围每个视频通道需要占用2个TCP端口1.2 系统基础环境配置通过SSH登录服务器后执行以下命令安装基础工具# 更新系统并安装必要工具 yum update -y yum install -y git lsof wget curl # 安装Docker CE curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun systemctl start docker systemctl enable docker # 验证Docker安装 docker version | grep -A5 Server:正常应输出类似信息Server: Docker Engine - Community Engine: Version: 20.10.18 API version: 1.41 Go version: go1.18.62. Docker自定义网络创建2.1 网络规划与创建RTVS需要独立的Docker网络确保各容器间通信隔离。执行以下命令创建自定义网络docker network create \ --driverbridge \ --subnet172.29.108.0/24 \ --gateway172.29.108.1 \ -o com.docker.network.bridge.namecvnetwork \ cvnetwork关键参数说明--subnet指定容器网络CIDR避免与宿主机网络冲突--gateway设置容器默认网关-o指定网桥名称便于识别验证网络创建成功docker network inspect cvnetwork | grep -E Subnet|Gateway2.2 网络连通性测试创建测试容器验证网络配置# 在自定义网络中启动测试容器 docker run -it --rm --networkcvnetwork alpine ping 172.29.108.1 # 测试宿主机到容器的连通性 docker run -d --name test_nginx --networkcvnetwork nginx:alpine curl $(docker inspect -f {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} test_nginx)3. RTVS项目部署与配置3.1 源码获取与目录准备建议使用Gitee镜像加速克隆mkdir -p /opt/rtvs cd /opt/rtvs git clone https://gitee.com/vanjoge/RTVS.git --depth1目录结构关键说明/opt/rtvs/ ├── RTVS/ # 主项目代码 │ ├── script/ # 部署脚本目录 │ └── test/ # 测试页面 └── run_all.sh # 主启动脚本3.2 环境变量配置复制并修改启动脚本cp RTVS/script/run_all.sh ./ sed -i s/export IPADDRESS.*/export IPADDRESS$(curl -s icanhazip.com)/ run_all.sh关键环境变量解析# HTTP服务映射端口 export DOCKER_HTTP_PORT30888 # WebSocket客户端连接端口 export DOCKER_WEBSOCKET_PORT17000 # 服务端口范围需与安全组开放范围一致 export PORT_DEV_START6001 export PORT_DEV_END6020 # WebRTC端口范围 export Webrtc_Port_Start14001 export Webrtc_Port_End14010 # 服务器公网IP自动获取 export IPADDRESS您的公网IP4. 服务启动与验证4.1 一键启动服务执行启动脚本chmod x run_all.sh ./run_all.sh启动过程会依次执行清理旧容器clear.sh启动集群服务run_cluster.sh启动测试网关run_gw.sh启动RTVS核心run_rtvs.sh4.2 服务状态检查使用以下命令验证容器运行状态docker ps --format table {{.Names}}\t{{.Status}}\t{{.Ports}}正常输出应包含以下服务NAMES STATUS PORTS rtvsweb-publish-1 Up 5 minutes 0.0.0.0:6001-80/tcp, 0.0.0.0:6002-443/tcp nginx-rtmp-1 Up 5 minutes 0.0.0.0:6003-1935/tcp, 0.0.0.0:6004-8080/tcp cvcluster-1 Up 5 minutes 0.0.0.0:17000-17000/tcp, 0.0.0.0:30888-80/tcp4.3 功能测试设备接入测试# 查看网关日志 docker logs -f tstgw808-1视频播放测试 访问http://公网IP:30888/test/tstrtvs.html输入服务器地址您的公网IP端口17000SIM卡号测试设备的识别码5. 常见问题排查5.1 端口冲突处理若出现端口占用错误使用以下命令排查# 查看端口占用情况 lsof -i :6001 # 强制释放端口谨慎使用 kill -9 $(lsof -t -i :6001)5.2 容器启动失败排查检查容器日志docker logs cvcluster-1 --tail 100常见错误解决方案错误现象可能原因解决方案连接Redis超时网络配置错误检查cvnetwork内容器间连通性端口已被占用重复启动或冲突服务修改PORT_DEV_START或结束端口镜像拉取失败网络问题配置Docker镜像加速5.3 性能优化建议对于高并发场景建议调整以下参数# 修改Docker守护进程配置 cat EOF /etc/docker/daemon.json { default-ulimits: { nofile: { Name: nofile, Hard: 65535, Soft: 65535 } }, registry-mirrors: [https://registry.cn-hangzhou.aliyuncs.com] } EOF systemctl restart docker6. 进阶配置与维护6.1 安全组策略优化建议按最小权限原则配置安全组# 示例仅允许特定IP访问管理端口 iptables -A INPUT -p tcp --dport 30888 -s 您的办公IP -j ACCEPT iptables -A INPUT -p tcp --dport 30888 -j DROP6.2 容器资源限制为关键服务添加资源限制# 修改run_rtvs.sh脚本 docker run -d \ --name rtvsweb-publish-1 \ --networkcvnetwork \ --memory2g \ --cpus1 \ vanjoge/rtvs:1.3.06.3 日志收集方案配置ELK日志收集# 示例Filebeat容器配置 docker run -d \ --name filebeat \ --volume/var/lib/docker/containers:/var/lib/docker/containers:ro \ docker.elastic.co/beats/filebeat:8.3.3 \ -E output.elasticsearch.hosts[elasticsearch:9200]实际部署中我们发现将WebRTC端口范围设置为CPU核心数2时如4核机器设为14001-14007能显著提升媒体流转发效率。同时建议定期检查docker system df输出及时清理无用镜像和容器。