SRS+Docker部署教程
安裝Docker
Windows安裝docker
-
安裝Hyper-V
Hyper-V 是微軟開發的虛擬機器,類似於 VMWare 或 VirtualBox,僅適用於 Windows 10。這是 Docker Desktop for Windows 所使用的虛擬機器。
但是,這個虛擬機器一旦啟用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本將無法使用!如果你必須在電腦上使用其他虛擬機器(例如開發 Android 應用必須使用的模擬器),請不要使用 Hyper-V!
-
開啟Hyper-V
選擇程式和功能
選中Hyper-V
也可以透過命令來啟用 Hyper-V ,請右鍵開始選單並以管理員身份執行 PowerShell,執行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
-
安裝Docker Desktop for Windows
點選 Get started with Docker Desktop,並下載 Windows 的版本
-
安裝啟動
如果啟動中遇到因 WSL 2 導致地錯誤,請安裝 WSL 2
安裝之後,可以開啟 PowerShell 並執行以下命令檢測是否執行成功:
docker run hello-world
Centos Docker安裝
-
安裝Docker
yum install -y docker
-
開啟Docker服務
systemctl start docker.service
-
檢視安裝結果
docker version
-
設定開機啟動
systemctl enable docker.service
-
設定Docker映象加速
vim /etc/docker/daemon.json
在配置檔案中加入加速映象源地址即可
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
重新載入配置檔案,重啟docker服務
systemctl daemon-reload systemctl restart docker.service
部署SRS
-
拉取SRS映象
docker pull ossrs/srs:4
-
執行
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呼叫埠
-
修改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執行