[关闭]
@liruiyi962464 2024-12-12T01:30:22.000000Z 字数 3873 阅读 89

Docker WebRTC容器部署方案(mpromonet/webrtc-streamer)

oula


配置开放端口

  1. firewall-cmd --zone=public --add-port=9060/tcp --permanent
  2. firewall-cmd --reload
  3. firewall-cmd --zone=public --list-ports
  4. ss -tuln
  5. lsof -i:9060
  6. kill -9
  7. netstat -tpln

任务一:安装并部署docker

1. 下载docker包

  1. wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/2417/docker-18.09.9.tgz

2. 解压

  1. tar zxf docker-18.09.9.tgz

3. 移动解压后的文件夹到/usr/bin

  1. mv docker/* /usr/bin

4. 写入docker.service

  1. vim /etc/systemd/system/docker.service
  2. [Unit]
  3. Description=Docker Application Container Engine
  4. Documentation=https://docs.docker.com
  5. After=network-online.target firewalld.service
  6. Wants=network-online.target
  7. [Service]
  8. Type=notify
  9. ExecStart=/usr/bin/dockerd
  10. ExecReload=/bin/kill -s HUP $MAINPID
  11. LimitNOFILE=infinity
  12. LimitNPROC=infinity
  13. TimeoutStartSec=0
  14. Delegate=yes
  15. KillMode=process
  16. Restart=on-failure
  17. StartLimitBurst=3
  18. StartLimitInterval=60s
  19. [Install]
  20. WantedBy=multi-user.target
  1. 5.修改执行权限
  2. chmod +x /etc/systemd/system/docker.service

5. 启动 Docker 并设置开机自启

  1. systemctl start docker #启动
  2. systemctl stop docker #停止
  3. systemctl status docker #状态
  4. systemctl restart docker #重启
  5. systemctl enable docker #开机自启
  6. systemctl disable docker #关闭开机自启
  7. systemctl daemon-reload #守护进程重启

6.拉取镜像(可以不做)

  1. //此处以Apache和CentOS官方镜像为例,由于国内禁止了docker官方镜像源,此处指定华为云官方镜像。
  2. //先修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建)
  3. vim /etc/docker/daemon.json
  4. //在文件内添加以下内容:
  5. {
  6. "registry-mirrors": [ "https://0cf850bb9480f3170f2dc01234ec1ca0.mirror.swr.myhuaweicloud.com" ]
  7. }

7. 查看docker版本

  1. docker version
  2. // 删除镜像
  3. docker images
  4. docker rmi [IMAGE]
  5. docker image rm
  6. // 拉取镜像
  7. // 使用以下命令拉取 mpromonet/webrtc-streamer 镜像:
  8. sudo docker pull mpromonet/webrtc-streamer
  9. // 停止
  10. sudo docker stop webrtc-streamer
  11. sudo docker rm webrtc-streamer
  12. sudo systemctl restart docker
  13. // 测试
  14. docker run -p 8000:8000 --name webrtc-streamer -it mpromonet/webrtc-streamer
  15. sudo docker run -d --network=host --name webrtc-streamer --memory 512m --memory-swap 512m mpromonet/webrtc-streamer
  16. sudo docker run -d -p 8000:8000 --name webrtc-streamer mpromonet/webrtc-streamer
  17. // -it 表示使用交互式终端,并分配一个伪终端;--name 指定容器名称为 webrtc-streamer;-p 指定容器内部端口号为 8000,映射到主机的 8000 端口 -d 后台运行。
  18. // 查询日志
  19. sudo docker logs webrtc-streamer

关闭防火墙

  1. systemctl status firewalld
  2. systemctl disable firewalld.service
  3. systemctl stop firewalld.service
  4. ## 关闭SELinux
  5. sed -i '/SELINUX=/d' /etc/selinux/config
  6. echo "SELINUX=disabled" >> /etc/selinux/config
  7. cat /etc/selinux/config|grep -v ^#|grep -v '^$'

(徐哥 只看测试即可 安装视频插件)测试

使用docker save命令将所需的镜像保存为一个tar文件。例如,要导出mpromonet/webrtc-streamer镜像,可以使用以下命令:

  1. // 外网安装的打包指令
  2. sudo docker save -o webrtc-streamer.tar mpromonet/webrtc-streamer:latest
  3. // 注意:上述命令中的:latest是镜像的标签,如果使用的是其他版本,请替换为相应的标签。
  4. // 在内网环境中加载Docker镜像
  5. // 在内网环境中,使用docker load命令加载从外网环境传输过来的Docker镜像文件。例如:
  6. sudo docker load -i webrtc-streamer.tar
  7. // 使用docker images命令来验证已经成功导入的Docker镜像。例如:
  8. sudo docker images
  9. // 停止
  10. sudo docker stop webrtc-streamer
  11. // 运行Docker容器
  12. sudo docker rm webrtc-streamer
  13. sudo systemctl restart docker
  14. sudo docker run -d -p 13100:8000 --name webrtc-streamer mpromonet/webrtc-streamer
  15. // 其他
  16. sudo docker run -d --network=host 13100:8000 --name webrtc-streamer --memory 512m --memory-swap 512m mpromonet/webrtc-streamer
  17. // -it 表示使用交互式终端,并分配一个伪终端;--name 指定容器名称为 webrtc-streamer;-p 指定容器内部端口号为 8000,映射到主机的 13100 端口 -d 后台运行。--memory 512m:--memory-swap 512m: 限制容器可以使用的内存加交换空间的总和为 512 MB。这意味着容器不能使用交换空间来超出其内存限制。 限制容器可以使用的内存为 512 MB。
  18. // 查询日志
  19. sudo docker logs webrtc-streamer

webrtc-streamer.service 视频插件自启

vim /etc/systemd/system

  1. [Unit]
  2. Description=WebRTC Streamer Service
  3. After=network.target docker.service
  4. Requires=docker.service
  5. [Service]
  6. User=admin # 确保这个用户有权限运行 Docker 命令,或者更改为 root(不推荐)
  7. Type=simple
  8. Restart=on-failure
  9. RestartSec=5s
  10. ExecStart=/bin/sh -c ' \
  11. /usr/bin/docker stop webrtc-streamer || true; \
  12. docker ps -a | grep webrtc-streamer && docker rm -f webrtc-streamer || true; \
  13. docker run -d -p 13100:8000 --name webrtc-streamer mpromonet/webrtc-streamer \
  14. '
  15. [Install]
  16. WantedBy=multi-user.target

指令

  1. // 重新加载 systemd 配置
  2. sudo systemctl daemon-reload
  3. // 启用并启动服务
  4. sudo systemctl enable webrtc-streamer.service
  5. sudo systemctl start webrtc-streamer.service
  6. // 检查服务状态
  7. sudo systemctl status webrtc-streamer.service
  8. // 检查服务状态
  9. journalctl -u webrtc-streamer.service

webrtc-streamer 返回数据 把docker的ip地址返回了 STUN/TURN 如何配置

  1. https://www.zybuluo.com/liruiyi962464/note/2568114
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注