SRS+Docker部署教程

CNPolaris發表於2023-04-06

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執行

相關文章