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

以下是基于Docker安装ZLMediaKit并修改config.ini配置的完整方案。


一、Docker 快速安装 ZLMediaKit

1. 拉取官方镜像

docker pull zlmediakit/zlmediakit:master

2. 首次运行临时容器

docker run -d --name zlmediakit-tmp zlmediakit/zlmediakit:master

3. 提取默认配置文件

# 创建宿主机配置目录
mkdir -p /opt/zlmediakit/conf
# 复制容器内配置文件到宿主机
docker cp zlmediakit-tmp:/opt/media/conf/config.ini /opt/zlmediakit/conf/
# 删除临时容器
docker rm -f zlmediakit-tmp

二、关键配置修改指南

1. 编辑配置文件

vi /opt/zlmediakit/conf/config.ini

2. 必改项

[api]
secret = your_custom_secret  # 必须修改默认值

[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 = xWXfsArzAcUCSkVz  #服务器唯一id 可自定义

3. 可选优化项

[general]
mediaServerId=0001          # 集群部署时需区分ID

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

三、正式运行容器(两种方式)

记得清理旧的容器

如果之前运行过同名容器,先停止并删除旧容器:

docker stop zlmediakit && docker rm zlmediakit

以下中 30000-30500 端口,可缩小范围,一定要大于50个,根据实际的业务调整

以下端口都可修改,但是必须与config.ini 一致

在运行ZLMediaKit的Docker容器时,需要根据流媒体服务需求开放以下端口。以下是详细的端口说明和配置建议:


必开核心端口

端口/范围协议用途说明配置示例
1935TCPRTMP协议(推流/拉流)-p 1935:1935
80TCPHTTP协议(HLS/HTTP-FLV播放)-p 8080:80(宿主机端口可调)
554TCPRTSP协议(实时流传输)-p 554:554
30000-30500TCP/UDPRTP代理端口范围(WebRTC/RTP转发)-p 30000-30500:30000-30500/tcp
-p 30000-30500:30000-30500/udp
方式1:直接运行
docker run -d --name zlmediakit \
-p 1935:1935 -p 8080:80 -p 554:554 \
-p 30000-30500:30000-30500/tcp \
-p 30000-30500:30000-30500/udp \
-v /opt/zlmediakit/conf/config.ini:/opt/media/conf/config.ini \
zlmediakit/zlmediakit:master
方式2:docker-compose部署(推荐)​
# 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

启动命令:

docker-compose up -d

四、验证配置生效

1. 查看实时日志

docker logs -f zlmediakit | grep "config loaded"
# 应显示"config loaded from /opt/media/conf/config.ini"

**2. 访问管理界面**
浏览器打开`http://宿主机IP:8080`,若显示ZLMediaKit欢迎页且无IP白名单错误,则配置成功

**3. API接口测试**
```bash
curl http://宿主机IP:8080/api/defaultAuth
# 返回的secret应与配置一致

五、热更新配置(无需重启)

通过API触发配置重载:

curl "http://宿主机IP:8080/api/reloadConfig?secret=your_custom_secret"

六、Docker 常用命令

一、容器管理命令
  1. 启动容器

    docker start [容器名/ID]

    启动一个已经存在的容器。

  2. 停止容器

    docker stop [容器名/ID]

    停止一个正在运行的容器。

  3. 重启容器

    docker restart [容器名/ID]

    重启一个容器。

  4. 运行容器

    docker run [选项] [镜像名]

    创建并启动一个新的容器。常用选项包括:

    • -d:后台运行容器。
    • --name:为容器指定一个名称。
    • -p:指定端口映射。
    • -v:挂载卷。
  5. 列出容器

    docker ps

    列出所有正在运行的容器。

    docker ps -a

    列出所有容器,包括停止的容器。

  6. 删除容器

    docker rm [容器名/ID]

    删除一个或多个已经停止的容器。

  7. 进入容器

    docker exec -it [容器名/ID] /bin/bash

    在运行中的容器内执行一个新的命令,通常用于进入容器的交互式Shell。

  8. 查看容器日志

    docker logs [容器名/ID]

    获取和查看容器的日志输出。

  9. 查看容器详细信息

    docker inspect [容器名/ID]

    获取容器的详细信息,包括配置、状态等。

二、镜像管理命令
  1. 列出镜像

    docker images

    列出本地所有的Docker镜像。

  2. 拉取镜像

    docker pull [镜像名]:[标签]

    从Docker仓库中拉取指定的镜像到本地。如果不指定标签,则默认拉取最新版本。

  3. 搜索镜像

    docker search [镜像名]

    在Docker仓库中搜索指定的镜像。

  4. 删除镜像

    docker rmi [镜像名/镜像ID]

    删除一个或多个本地镜像。

  5. 构建镜像

    docker build -t [镜像名]:[标签] [Dockerfile路径]

    根据Dockerfile构建一个新的Docker镜像。

三、其他常用命令
  1. 查看Docker版本

    docker version

    显示Docker客户端和服务端的版本信息。

  2. 显示Docker系统信息

    docker info

    显示Docker的系统级信息,包括当前的镜像和容器数量等。

  3. 启动Docker服务

    sudo systemctl start docker

    启动Docker服务。

  4. 停止Docker服务

    sudo systemctl stop docker

    停止Docker服务。

  5. 重启Docker服务

    sudo systemctl restart docker

    重启Docker服务。

  6. 设置Docker开机自启

    sudo systemctl enable docker

    设置Docker服务在开机时自动启动。

注意事项

  1. 端口映射一致性:容器内外端口必须对应,如config.ini中http端口80对应宿主机的8080
  2. 文件权限:确保宿主机配置文件权限为644
  3. 多环境配置:可通过-v挂载不同配置文件目录实现开发/生产环境切换

这是作者相关的配置,可参考:

[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 可自定义
docker run -d --name zlmediakit \
-p 1935:1935 -p 8086:8086 -p 554:554 \
-p 30120-30125:30120-30125/tcp \
-p 30120-30125:30120-30125/udp \
-v /opt/zlmediakit/conf/config.ini:/opt/media/conf/config.ini \
zlmediakit/zlmediakit:master

安装有什么问题,可在评论区讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟小杰子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值