Docker搭建Plex流媒体服务并播放自己本地视频

Docker搭建Plex流媒体服务

  1. 安装Docker
  2. 创建存储配置文件的目录
  3. 创建Plex容器
  4. 配置Plex
  5. 设置媒体库
  6. 访问Plex

1 介绍

Plex是一个流媒体服务器,可以轻松地将你的媒体文件库(如电影、电视节目和音乐)通过网络流式传输到各种设备上。

  • Plex 是一套媒体播放器及媒体服务器软件,提供了一整套完整的解决方案(Server + Client),支持众多平台和设备,对移动设备性能几乎没有要求,凡是能打开 web 看视频的设备,基本都能使用。 Plex支持远程访问,云同步及好友共享库功能,尤其适合家庭影音库、异地恋情侣观影。

其他类似软件:

  • emby(收费)
  • Jellyfin(收费)
  • elfilm(免费非开源)
  • infuse(收费)

刮削器在plex里叫做代理(agent)

2 安装部署过程

2.1 安装Docker

如果是windows或者mac可以直接安装docker desktop这个软件

官网地址:https://www.docker.com/products/docker-desktop/

如果是Linux(Ubuntu或者CentOS):

前提条件:

  • Docker可以运行在Windows、Mac、CentOS、Ubuntu等操作系统上

  • Docker支持以下的CentOS版本:

    • CentOS 7 (64-bit)
    • CentOS 6.5 (64-bit) 或更高的版本
  • 目前,CentOS 仅发行版本中的内核支持 Docker

    • Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
    • Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
  1. 查看系统内核

uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

java 复制代码
uname -r
  1. 查看已安装的CentOS版本信息
java 复制代码
cat /etc/redhat-release

满足上面可以安装docker的条件即可安装。

docker官网:

官网:http://www.docker.com

安装手册:https://docs.docker.com/install/linux/docker-ce/centos(CE-社区版)

① 安装需要的软件包

yy -utils提供了yy-config-manager相关功能,device-mapper-persistent-data和lvm2是设备映射器驱动程序所需要的。

bash 复制代码
yum install -y yum-utils \
               device-mapper-persistent-data \
               lvm2

如果有以下报错信息:

报错:Another app is currently holding the yum lock; waiting for it to exit... 另一个应用程序是:PackageKit 内存:146 M RSS (497 MB VSZ) 已启动: Wed Oct 26 20:20:11 2022 - 00:07之前 状态 :运行中,进程ID:2874 Another app is currently holding the yum lock; waiting for

执行下面命令即可:

java 复制代码
rm -f /var/run/yum.pid
② 设置docker镜像为阿里云、更新yum索引

①设置docker镜像为阿里云

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

②我们在更新或配置yum源之后,通常都会使用yum makecache 生成缓存,这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度

shell 复制代码
yum makecache fast
③ docker安装即后续配置

①安装docker ce

shell 复制代码
yum install -y docker-ce

②启动docker

powershell 复制代码
systemctl start docker

③查看docker版本

powershell 复制代码
docker version

④设置docker是否开启自起

powershell 复制代码
#查看服务是否自动启动(是:enabled | 否:disabled)
systemctl list-unit-files|grep docker.service 

#设置开机启动:如不是enabled可以运行如下命令设置自启动
systemctl enable docker
#重新加载服务配置
systemctl daemon-reload 

#如果希望不进行自启动,运行如下命令设置
systemctl disable docker
#重新加载服务配置
systemctl daemon-reload 

⑤如果我们想卸载docker,执行以下命令

powershell 复制代码
systemctl stop docker 
yum remove -y docker-ce
rm -rf /var/lib/docker

拓展:有时候,我们需要不同的服务器部署相同的镜像,这个时候我们可以使用docker export / import来对镜像进行导入导出

导出:

bash 复制代码
docker export f299f501774c > rabbit.tar

导入:

bash 复制代码
docker import - myrabbit < rabbit.tar

2.2 创建配置文件目录

在你的系统上创建一个目录,用于存储Plex的配置文件。你可以使用以下命令创建目录:

bash 复制代码
# 创建plex配置文件
mkdir -p /Users/ziyi/plex-config
# 创建自己本地存放媒体的文件夹
mkdir -p /Users/ziyi/media

2.3 docker创建plex

bash 复制代码
docker run -d \
  --name plex \
  --restart=unless-stopped \
  -p 32400:32400 \
  -v /Users/ziyi/plex-config:/config \
  -v /Users/ziyi/media:/data \
  plexinc/pms-docker

-d:在后台运行容器;

--name plex:为容器指定名称为"plex";

--restart=unless-stopped:在容器停止或重启后自动重新启动;

-p 32400:32400:将主机的32400端口映射到容器的32400端口,这是Plex的默认端口;

-v /Users/ziyi/plex-config:/config:将主机上的"plex-config"目录挂载到容器的"/config"目录,用于存储Plex的配置文件;

-v /Users/ziyi/media:/data:将主机上的"media"目录挂载到容器的"/data"目录,用于存储媒体文件。

请将上述命令中的/Users/ziyi/plex-config和/Users/ziyi/media替换为实际的目录路径。

bash 复制代码
# 查看plex是否启动成功,出现Up表明成功,否则表明失败
docker ps | grep plex

2.4 配置并访问

①注册或登录plex账号

现在,你可以通过访问 http://localhost:32400/web 来访问Plex的Web界面。首次访问时,你需要登录或创建一个Plex账号。

  • 如果没有账号,可以通过邮箱注册

登录后,按照界面上的指引,完成Plex的初始设置。你可以设置服务器名称、语言、媒体库等。

一旦Plex配置完成,你可以通过"添加媒体库"选项来添加你的媒体文件夹。点击"添加媒体库"按钮,选择媒体类型(如电影、电视节目、音乐等),然后选择对应的媒体文件夹。

Plex将扫描并索引所选文件夹中的媒体文件,并在Web界面上显示它们。

✈️Plex工作原理:

你可以在Plex的Web界面上浏览和播放你的媒体文件,也可以使用Plex客户端应用程序在各种设备上观看。

②访问

现在,你可以通过浏览器或Plex客户端访问Plex服务器。在浏览器中访问 http://localhost:32400/web ,或使用Plex客户端应用程序。

  • 主页会有Plex自己推荐的视频
③添加自己本地资料库(可选)

如果我们想要将自己本地的视频放在plex上播放,那么我们可以通过添加资料库实现

  1. 添加资料库

点击头像 - 选择账户 - 选择管理模块下的媒体库 - 点击添加资料库

  1. 选择对应的媒体类型和语言

  2. 添加文件夹

指明该资料库扫描哪个文件夹下的媒体视频

  • 我本地的媒体视频等都在/Users/ziyi/media下,在开始创建docker时,我已经将/Users/ziyi/media目录绑定到了plex容器内部的/data目录,所以这里我直接选择/data
  • 创建容器时候的挂载卷参数:-v /Users/ziyi/media:/data

我已经添加了我本地资料库,可以点击扫描资料库,将本地视频扫描到plex中。

  1. 回到主页,播放自己媒体库的视频

播放:

❓tips:

  • 主页上手动扫描文件
    配置自动扫描本地媒体文件并更新
相关推荐
景天科技苑39 分钟前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
安步当歌41 分钟前
【WebRTC】视频编码链路中各个类的简单分析——VideoStreamEncoder
音视频·webrtc·视频编解码·video-codec
顾北川_野42 分钟前
Android CALL关于电话音频和紧急电话设置和获取
android·音视频
顶呱呱程序1 小时前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法
wclass-zhengge1 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇1 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
runing_an_min2 小时前
ffmpeg 视频滤镜:屏蔽边框杂色- fillborders
ffmpeg·音视频·fillborders
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!10 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes