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