基于PVE的allinone玩法之二(docker的基础应用)
序
上一篇已经将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主要是用于日常的管理工作。
如果有更新会在右下角进行提示,但无法直接升级,需要删除容器后重新拉取新的镜像重新安装进行升级,具体操作方式如下:
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的文件夹,无所谓创建在哪,能找到就行
第二步,开启群晖nfs共享,并设置需要共享的文件夹,我这里是将videos文件夹共享
开启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
第四步,准备工作做完了,就可以安装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
jellyfin就部署完成了,直接通过host ip:8096访问,我的是100.0.0.111:8096
进入jellyfin以后按照引导进行设置就行了,由于直通了核显,所以可以硬解,如下图设置即可
完成服务器端的的部署后就可以播放了,可以直接通过网页或是安装对应平台的客户端,还是挺好用的。
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目录下
然后执行下面的命令,将字库复制到docker容器下的制定目录
docker cp /home/peng/SourceHanSansSC-VF.otf tinymediamanager:/usr/share/fonts/SourceHanSansSC-VF.otf
重启tmm的容器后就生效了,可以设置中文了,具体的用法我这里就不多做介绍了,应该是有不少可以参考的教程,而且我觉得docker版本的tmm并不好用,还是在桌面os上安装更好一点,这里只是给大家一种选择
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应用。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
笨小书童
校验提示文案
笨小书童
校验提示文案