Docker部署ZLMediaKit流媒体服务器并自定义配置指南

一、Docker 快速安装 ZLMediaKit

1. 拉取官方镜像

bash 复制代码
docker pull zlmediakit/zlmediakit:master

2. 运行容器

  • 映射配置文件目录
bash 复制代码
docker run -d --name zlmediakit
    -v D:\docker_config\ZLMediaKit:/opt/media/conf 
    -p 1935:1935 -p 8080:80 
    -p 554:554
    -p 5060:5060
    -p 30000-30500:30000-30500/tcp
    -p 30000-30500:30000-30500/udp
    zlmediakit/zlmediakit:master

配置文件,修改项

必改

ini 复制代码
[api]
secret = my_secret_123456  # 必须修改默认值,随便写

[rtp_proxy]
port_range = 30000-30500     # 端口范围需与容器映射一致

[http]
port = 80                    # 保持与容器映射端口对应 宿主机映射到8080
allow_ip_range = 0.0.0.0/0   # 允许所有IP访问
ssl_port=443                 # 若开启HTTPS

[rtmp]
port=1935                    # 必须与Docker映射的容器端口一致

[websocket]
port=9000                    # 若开启WebSocket

[general]
mediaServerId = my_server_01  #服务器唯一id 可自定义

可选优化项

ini 复制代码
[general]
mediaServerId=0001          # 集群部署时需区分ID

[hook]
enable_flow_report=1        # 开启流量统计

3. 端口说明,必开核心端口

端口/范围 协议 用途说明 配置示例
​1935​ TCP RTMP协议(推流/拉流) -p 1935:1935
​80​ TCP HTTP协议(HLS/HTTP-FLV播放) -p 8080:80(宿主机端口可调)
​554​ TCP RTSP协议(实时流传输) -p 554:554
​30000-30500 TCP/UDP RTP代理端口范围(WebRTC/RTP转发) -p 30000-30500:30000-30500/tcp -p 30000-30500:30000-30500/udp

二、docker-compose部署(推荐)

yml 复制代码
# docker-compose.yml
version: '3'
services:
  zlmediakit:
    image: zlmediakit/zlmediakit:master
    volumes:
      - /opt/zlmediakit/conf/config.ini:/opt/media/conf/config.ini
    ports:
      - "1935:1935"
      - "8080:80"
      - "554:554"
      - "30000-30500:30000-30500/tcp"
      - "30000-30500:30000-30500/udp"
    restart: always

启动

bash 复制代码
docker-compose up -d

三、验证配置生效

http://localhost:8080/index/api/getApiList?secret=WuNpszEmwWeqNKGqkeddIORcOI0OqNmq

能访问, 表示开启成功

直接拷贝

ini 复制代码
[api]
secret = 2hL9M4kQ7wXjFnRt3zP5Q8sV4bY1DuA2  # 必须修改默认值

[rtp_proxy]
port_range = 30120-30125     # 端口范围需与容器映射一致

[http]
port = 8086                  # 保持与容器映射端口对应 宿主机映射到8080
allow_ip_range = 0.0.0.0/0   # 允许所有IP访问
ssl_port=443                 # 若开启HTTPS

[rtmp]
port=1935                    # 必须与Docker映射的容器端口一致

[websocket]
port=9000                    # 若开启WebSocket

[general]
mediaServerId = HnYjpLtzGdKQWmBv  #服务器唯一id 可自定义
相关推荐
dora16 小时前
接口被疯狂调用怎么办?聊聊接口限流
后端·安全
1360967572316 小时前
评测结果怎么用:从失败样本到提示词规则
后端
不一样的少年_17 小时前
为什么你写的 Agent 一报错就死循环?很多人都漏掉了这层“错误自救与熔断”机制
前端·后端·agent
ZhengEnCi17 小时前
Agent 自动化系统怎么搭:从 Super-agent 架构到事件驱动调度(全文可跑)
后端·架构
学长毕设17 小时前
基于SpringBoot的网上流浪狗救助捐赠平台-附源码
java·spring boot·后端
xiaoqiMikko17 小时前
Redis 实战(三):持久化出错 —— fork 失败、磁盘写满、AOF 膨胀与损坏,逐个复现(6.2.4)
redis·后端
VimorphTech17 小时前
文本已经改了,旧的音频生成结果还能回写吗?
java·数据库·mybatis
UNIHHIOT17 小时前
开源一套工业物联网平台:驱动崩了不影响别的协议,64MB 堆跑边缘网关
前端·后端
废柴程序员_熊熊17 小时前
DeepSeek Harness 实测:两条命令装好,11 步写完 632 行代码,3 个测试全绿
后端