文章目录
前言
mediamtx官方作者提供了docker的镜像,如下图,但是现在想要使用ffmpeg+RPI的版本无法下载,本文介绍使用ubuntu镜像运行mediamtx,开机docker运行时,自启动mediamtx。
一、安装docker
我是在ubuntu18.04上安装的docker
1、安装docker
sudo apt update
sudo apt install docker.io
测试:
sudo docker info
2、免sudo使用docker
cat /etc/group
# 在最下面可以看到docker group
sudo gpasswd -a 用户名 docker
#把用户添加到docker group
执行添加用户到docker组以后需要重启系统重新登录
3、更换镜像源
sudo vim /etc/docker/daemon.json
添加如下内容:(我用的是阿里的,需要自己注册使用自己的地址)
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
重启docker
sudo systemctl restart docker
测试:
sudo docker info
可以看到最下面多了镜像
Registry Mirrors:
https://xxxxxxx.mirror.aliyuncs.com/
二、创建ubuntu容器并安装mediamtx且自启动
1、下载解压并配置mediamtx
在宿主机的/usr/local/mediamtx的目录下放置mediamtx的安装包,然后解压,并配置好yml文件相关内容。参考:mediamtx使用说明 https://blog.csdn.net/haixiangyun/article/details/132489160
2、创建mediamtx-start.sh文件作为mediamtx启动文件
在/usr/local/mediamtx/目录下
sudo vim mediamtx-start.sh
写入内容:
#!/bin/sh
/usr/local/mediamtx/mediamtx /usr/local/mediamtx/mediamtx.yml
3、创建容器
docker run -d -p 8889:8889 -p 8554:8554 -v /usr/local/mediamtx/:/usr/local/mediamtx/ -v /etc/localtime:/etc/localtime --restart=on-failure --name=ubuntu-mediamtx ubuntu:18.04 bash /usr/local/mediamtx/mediamtx-start.sh
- -d 在后台运行
- -p 端口映射,根据实际需求映射,我这儿使用rtsp映射8554;使用webrtc映射8889
- -v 目录映射,/usr/local/mediamtx/为mediamtx的目录,映射后方便查看,可在本地修改mediamtx配置和查看日志; 映射/etc/localtime为同步时区
- –restart 重启方式,不设置或者设置为no的话无法开机自启动
- –name 给容器命名
- bash /usr/local/mediamtx/mediamtx-start.sh :启动时使用bash命令执行我们创建的.sh文件
三、安装ffmpeg
根据自己的需求如果需要安装ffmpeg,可进入镜像中安装ffmpeg
参考:ubuntu18安装ffmpeg5 https://blog.csdn.net/haixiangyun/article/details/132583757
总结
刚开始想在创建的ubuntu18.04的镜像中使用systemctl做开启自启动mediamtx,但是镜像的目的是隔离,镜像中不支持systemctl,因此可以写启动脚本,在容器运行是执行开启脚本。