基于PVE的allinone玩法之二(docker的基础应用)

2022-02-25 10:25:50 9点赞 92收藏 1评论

上一篇已经将allinone的基础架构搭建好,docker的载体ubuntu也配置好了,这次主要是介绍一些docker的安装和部分应用,涉及到的包括portainer、jellyfin、transmission、tinymediamanager。可能有的同学会问,既然都已经安装了群晖,为啥还要搞个ubuntu来装docker,直接放在群晖里不就好了,或者干脆在pve上直接装docker,再或者通过LXC container来安装,效率上也不错。但之所以这么做,主要是从安全的角度上考虑,allinone其实还是有一定的风险的,至少我之前用unraid会出现崩溃的情况,所以尽量还是把功能隔离,原则就是pve我基本不动,群晖我也只用无法替代或者基础的功能,比如drive或photo啥的,其他的都由ubuntu来完成。

用到的一些材料,可以在我的网盘里找到

Portainer的安装及使用

为了便于docker的管理,首先要安装一个管理docker的容器,portainer用了一段时间还是挺好用,通过mobaxterm的ssh连接到ubuntu,然后按照如下命令操作即可。

第一步,创建存储空间

docker volume create portainer_data

第二步,安装portainer,全部复制一起粘mobaxterm里后回车,执行命令,由于之前没有拉取镜像,所以需要一段时间下载,下载就会自动运行(不知道为啥无法显示出来,代码只要弄成一行了,不影响用,就是有点难受看着)。

docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /docker/portainer_data:/data portainer/portainer-ce:latest

可能需要调整的就是映射的端口,其他的没啥可能需要调整的就是映射的端口,其他的没啥

可能需要调整的就是映射的端口,其他的没啥

安装完成以后在浏览器输入ubuntu(宿主机)的IP:9000,我的是10.0.0.111:9000,就可以看到portainer的界面,点到各模块里可以看到各容器的运行情况,也可以对容器进行开启关闭等操作。也可以直接通过portainer搜索进行拉取并运行,但个人还是比较习惯用命令行的方式运行容器,portainer主要是用于日常的管理工作。

基于PVE的allinone玩法之二(docker的基础应用)

如果有更新会在右下角进行提示,但无法直接升级,需要删除容器后重新拉取新的镜像重新安装进行升级,具体操作方式如下:

sudo docker stop portainer #关闭容器

sudo docker rm portainer #删除容器

docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /docker/portainer_data:/data portainer/portainer-ce:latest

Jellyfin的安装和使用

第一步,将群晖存储视频的目录挂载到ubuntu上,具体操作如下

apt-get install nfs-common #安装nfs服务

sudo mkdir -p /home/peng/nas/ds918/video #创建一个/home/用户名/nas/ds/video的文件夹,无所谓创建在哪,能找到就行

基于PVE的allinone玩法之二(docker的基础应用)

第二步,开启群晖nfs共享,并设置需要共享的文件夹,我这里是将videos文件夹共享

开启nfs服务开启nfs服务

开启nfs服务

设置文件夹nfs权限设置文件夹nfs权限

设置文件夹nfs权限

记录下这个装载地址记录下这个装载地址

记录下这个装载地址

第三步,将群晖的videos文件夹挂载到ubuntu下的文件夹,路径就是刚才创建的/home/用户名/nas/ds918/video

sudo mount -t nfs 10.0.0.110:/volume2/videos /home/peng/nas/ds918/video #10.0.0.110是群晖的ip地址,每次重启ubuntu的时候都需要重新挂载

检验一下是否挂在成功,如果能看到群晖videos文件夹下的文件,那就说明成功了

ls /home/peng/nas/ds918/video

基于PVE的allinone玩法之二(docker的基础应用)

第四步,准备工作做完了,就可以安装jellyfin的容器了,操作如下

docker run -d --name jellyfin4docker --device=/dev/dri/renderD128 --add-host=api.themoviedb.org:13.33.33.51 --add-host=image.tmdb.org:13.227.65.112 --add-host=www.themoviedb.org:99.86.218.110 -p 8096:8096 -v /docker/jellyfin/config:/config -v /home/peng/nas/ds918/video:/media nyanmisaka/jellyfin

基于PVE的allinone玩法之二(docker的基础应用)

jellyfin就部署完成了,直接通过host ip:8096访问,我的是100.0.0.111:8096

进入jellyfin以后按照引导进行设置就行了,由于直通了核显,所以可以硬解,如下图设置即可

基于PVE的allinone玩法之二(docker的基础应用)

完成服务器端的的部署后就可以播放了,可以直接通过网页或是安装对应平台的客户端,还是挺好用的。

tinymediamanager的安装和使用

安装了jellyfin解决了转码和播放的需求,但是由于文件名的不规范,搜刮功能一般,所以就需要tinymediamanager,

首先在宿主机上创建一个存储config的文件夹,路径是/home/用户名/cfg4docker/tmm

sudo mkdir -p /home/peng/cfg4docker/tmm

然后执行以下命令就可以完成tmm的配置,其中/home/peng/nas/ds918/video换成自己挂载的路径

docker run -d --name=tinymediamanager --add-host=api.themoviedb.org:13.33.33.51 --add-host=image.tmdb.org:13.227.65.112 --add-host=www.themoviedb.org:99.86.218.110 -v /home/peng/cfg4docker/tmm:/config -v /home/peng/nas/ds918/video:/media -e GROUP_ID=0 -e USER_ID=0 -p 5800:5800 -p 5900:5900 romancin/tinymediamanager:latest

完成以后在浏览器上输入host:5800,我的是10.0.0.111:5800

进去以后如果设置中文,显示有问题,各种小方块,为解决这个问题,首先要下载字体,链接就不发了,可以百度自行搜索一下

下载完成以后把它拖入mobaxterm的左边,我是放在了/home/peng目录下

基于PVE的allinone玩法之二(docker的基础应用)

然后执行下面的命令,将字库复制到docker容器下的制定目录

docker cp /home/peng/SourceHanSansSC-VF.otf tinymediamanager:/usr/share/fonts/SourceHanSansSC-VF.otf

重启tmm的容器后就生效了,可以设置中文了,具体的用法我这里就不多做介绍了,应该是有不少可以参考的教程,而且我觉得docker版本的tmm并不好用,还是在桌面os上安装更好一点,这里只是给大家一种选择

基于PVE的allinone玩法之二(docker的基础应用)

transmission的安装和使用

大部分nas玩家还是有挂pt的需求,这里只介绍transmission的安装和使用,主要是是比较顺手,和jellyfiny一样,首先是要挂载群晖的下载文件夹,然后安装,由于挂载的操作前面已经介绍过了,这块就简单写了,操作如下

sudo mkdir -p /home/peng/nas/ds918/download

sudo mkdir -p /home/peng/nas/ds918/download/0config #储存配置文件

sudo mkdir -p /home/peng/nas/ds918/download/0watch #设置监视文件夹

sudo mount -t nfs 10.0.0.110:/volume2/download /home/peng/nas/ds918/download

下面是创建并启动transmission的容器,用户名设置的是user,密码123456,-v后面的根据实际情况修改宿主机路径,就是冒号前的部分

docker run -d --name=transmission -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -e TRANSMISSION_WEB_HOME=/combustion-release/ -e USER=user -e PASS=123456 -p 9091:9091 -p 51413:51413 -p 51413:51413/udp -v /home/peng/nas/ds918/download/0config:/config -v /home/peng/nas/ds918/download:/downloads -v /home/peng/nas/ds918/download/0watch:/watch --restart unless-stopped lscr.io/linuxserver/transmission

完成操作后就可以输入 host ip:9091启动了,我这里是10.0.0.111:9091,网页版其实并不好用,可以安装transmission gui remote,这个我就不管了,哈哈,直接百度即可

总结

这篇介绍了一些比较基础的docker应用,通过portainer管理docker,基于docker进行下载、流媒体服务以及搜刮应用,下期会继续介绍其他一些docker应用。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
1评论

  • 精彩
  • 最新
  • pve及docker容器获取IPv6会吗,求文章指导 [观察]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
92
扫一下,分享更方便,购买更轻松