SRS+Docker部署教程

安装Docker

Windows安装docker
  1. 安装Hyper-V

    Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。

    但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

  2. 开启Hyper-V

image.png

选择程序和功能

image.png

选中Hyper-V

image.png

也可以通过命令来启用 Hyper-V ,请右键开始菜单并以管理员身份运行 PowerShell,执行以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
  1. 安装Docker Desktop for Windows

    点击 Get started with Docker Desktop,并下载 Windows 的版本

  2. 安装启动

    如果启动中遇到因 WSL 2 导致地错误,请安装 WSL 2

    安装之后,可以打开 PowerShell 并运行以下命令检测是否运行成功:

    docker run hello-world
    
Centos Docker安装
  1. 安装Docker

    yum install -y docker
    
  2. 开启Docker服务

    systemctl start docker.service
    
  3. 查看安装结果

    docker version
    
  4. 设置开机启动

    systemctl enable docker.service
    
  5. 设置Docker镜像加速

    vim /etc/docker/daemon.json
    

    在配置文件中加入加速镜像源地址即可

    {
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    

    重新加载配置文件,重启docker服务

    systemctl daemon-reload
    systemctl restart docker.service
    

部署SRS

  1. 拉取SRS镜像

    docker pull ossrs/srs:4
    
  2. 运行

    docker run -it -p 1935:1935 -p 1985:1985 -p 8080:8080 --name iot-srs ./objs/srs -c conf/docker.conf
    

    端口说明

    • 1935: 默认的RTMP推拉流端口
    • 1985: 默认的HTTP拉流端口
    • 8080: 默认的SRS HTTP API调用端口
  3. 修改docker.conf配置文件

    # docker config for srs.
    # @see full.conf for detail config.
    
    listen              1935;
    max_connections     1000;
    # For docker, please use docker logs to manage the logs of SRS.
    # See https://docs.docker.com/config/containers/logging/
    srs_log_tank        console;
    daemon              off;
    http_api {
        enabled         on;
        listen          1985;
    }
    http_server {
        enabled         on;
        listen          8080;
        dir             ./objs/nginx/html;
    }
    rtc_server {
        enabled on;
        listen 8000;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
        candidate $CANDIDATE;
    }
    vhost __defaultVhost__ {
        hls {
            enabled         on;
        }
        http_remux {
            enabled     on;
            mount       [vhost]/[app]/[stream].flv;
        }
        rtc {
            enabled     on;
            # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
            rtmp_to_rtc on;
            # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
            rtc_to_rtmp on;
        }
         http_hooks { # http回调功能 默认关闭
            enabled    off;
            on_publish      http://192.168.31.11:8083/iot/v1/srs/stream/publish;	#发生推流时
            on_unpublish    http://192.168.31.11:8083/iot/v1/srs/stream/unpublish;	#结束推流时
         }
    }
    

    可能会出现docker中http回调127.0.0.1或者localhost时无法访问鉴权服务器, 将鉴权服务器改成0.0.0.0运行