群晖入门到进阶系列(七):自用Docker镜像推荐与配置 | Alliot''s blog

  前面我们已经讲完了 Docker 的安装与镜像加速器的配置,本文将介绍一些 Alliot 常用的镜像以及相关的配置。

前言

  命令行与群晖的 Docker 套件面板操作,各有优劣,因此,下文的内容有综合两种方式来进行。为了照顾新手,步骤描述可能比较啰嗦,老手其实只需要知道镜像名,去 dockerhub 对应的项目主页查看即可。

创建卷的挂载目录

  很多容器都会要用到卷(volume),以此来做数据的持久化。在容器里,container 内部修改的文件都会保存在 container 的可读写层中,当 container 销毁(如重建 container 等)时,那些文件就会丢失,并且,跨 container 的文件操作,在没有卷(volume)的情况下,也非常麻烦。因此,Alliot 推荐在群晖里新建一个共享目录来专门存放卷(volume)文件。
  打开群晖控制面板-共享文件夹,选择新增,如下图所配置即可:
  

  接下来我们需要将这个共享文件夹的权限放大一些,防止容器应用的权限问题(这里我直接将权限改成了最松,安全起见请勿将其他重要文件夹的目录这样配置):
  

  今后我们可以将容器卷挂载点都置于改目录下,便于管理。

某度云盘远程下载

  NAS 作为一个 7*24 小时开机的设备,最大的用处就是下载了,可惜,龟速某度云盘并没有提供群晖相关的客户端来供挂机下载。(cloudSync 属于同步而且有大小限制,不太适合某度云盘的下载),逛 Github 的时候偶然看到了一个 VNC 结合百度云盘 Linux 客户端的 Docker 镜像项目,非常适合在群晖上运行。
  项目地址: https://github.com/john-shine/Docker-CodeWeavers_CrossOver-VNC

创建

  使用 ssh 连接群晖并获取 root 权限

12345678910111213
# 从远端 pull 最新 imagedocker pull johnshine/baidunetdisk-crossover-vnc:latest# 从 image 创建 container 并运行docker run -d \--name baidunetdisk \-p 5901:5901 \-p 6080:6080 \-e vnc_password=your_password \johnshine/baidunetdisk-crossover-vnc:latest# 上面的参数中,--name 表示容器名(可自定义),-d 表示以守护进程运行,-p 表示映射容器端口(前面为host端口,后面为容器端口),-e 表示环境变量# 即 映射容器的5901与6080端口到主机5901与6080端口,设置vnc密码为your_password

  之后,我们回到 DSM 的 Docker 套件,可以看到我们刚才创建的容器,我们先将它停止,点击编辑:

  在 “卷” 选项卡中,添加文件夹,选择下载保存的位置,装载路径为:/home/baidu/baidunetdiskdownload/ (保存位置可以自定义,装载路径必须为这个),应用,之后将该容器启动即可。

管理

  我们可以使用浏览器直接打开: http://nas的IP:6080 登录账号即可(密码为前面设置的vnc_password值):

  或者也可以使用 VNC 客户端(推荐 VNCVIEWER)进行连接,连接地址为: nas的IP:5901

BUG

卡LOGO

  使用过程中发现有时候容器启动后连接 VNC,会出现卡百度网盘 LOGO 的情况,这时候我们需要使用 ssh 连接群晖并获取 root 权限 执行:

1234567891011
# 进入容器内部并开启一个 shelldocker exec -it `docker ps|grep baidu|awk '{print $1}'` /bin/bash# 删除数据库文件rm -f /home/baidu/baidunetdisk/baidunetdiskdata.db# 退出容器 shellexit# 重启该容器docker restart `docker ps -a|grep baidu|awk '{print $1}'`

重新连接 VNC 即可。

Aria2NG

  aria2 是一款开源的多线程的下载工具,许多软件中都有它的身影(前面被搞的 Pandownload 也是基于 aria2 的)。而 Aria2NG 则是一个基于 aria2 的 UI 版。

创建

  首先,打开群晖 DSM 中的 Docker 套件,在 注册表 中搜索 auskadocker-aria2 下载对应的镜像后,在 映像 中选择启动,勾选 使用高权限运行,端口设置里,容器端口不变,本地端口中,6800 为 Aria2 RPC 服务端口(不推荐修改),8080 为 Aria2NG WEB 服务,按需修改。卷设置中,添加文件夹。创建一个保存配置用的文件夹,Alliot 这里为 docker/aria2 此处可按需自定义,装载路径则必须为 /config,同样的创建一个保存下载文件用的文件夹,Alliot 这里为 homes 按需自定义,装载路径必须为 /mnt,之后再去到群晖的 File Station ,找到这些文件夹,右键属性,设置 Everyone 可读可写。回到 docker 环境设置中,SECRET 变量为 Aria2 RPC 密钥,默认为odcn.top admin,可按需修改,Alliot 这里选择默认,配置完成后应用,到容器里启动即可。

  打开浏览器,访问 群晖的 IP:Aria2NGWEB的端口 即可进入 Aria2NG,这里说一下一个坑,此镜像不会自动配置 Aria2 服务器的 RPC 密钥,即使是默认的 admin 也不行,所以打开 WEB 后会提示 错误 认证失败,需要手动填写先前设置的 SECRET

自动更新tracker

  很多朋友说 Aria2 速度依旧很慢,这是因为没有添加 tracker 地址导致的,我们利用脚本设置从 tracklist 自动更新 Aria2NG 的 tracker:
使用 ssh 连接群晖并获取 root 权限 后,新建一个脚本内容如下:

12345678910111213
!/bin/bash#CONFFILE 更改成你的 conf 文件真实地址CONFFILE="/volume1/docker/aria2/aria2.conf"DOCKERID="`docker ps| grep aria|awk '{print $1}'`"list=`wget -qO- https://trackerslist.com/best.txt|awk NF|sed ":a;N;s/\n/,/g;ta"`if [ -z "`grep "bt-tracker" $CONFFILE`" ]; thensed -i '$a bt-tracker='${list} $CONFFILEecho add……elsesed -i "s@bt-tracker.*@bt-tracker=$list@g" $CONFFILEecho update……fidocker restart -t=30 $DOCKERID

  运行该脚本后可以看到 aria2.conf 添加了 bt-tracker 字段即可。
登录 DSM 打开控制面板添加计划任务如下:

1234
# 任务名随意,使用 root 用户执行# 计划里每天执行# 任务设置里添加:sh /volume1/docker/aria2/auto_tracker.sh

在 Aria2 的配置文件 aira2.conf 中,添加如下字段:

12
save-session-interval=30 # 30 S 保存会话force-save=true          # 强制保存

脚本运行后会提示容器意外关闭,这是因为更改 aria2 的配置文件后,脚本重启了容器以生效。

人人影视下载

  美剧爱好者肯定都知道人人影视这个软件,人人影视也有 Docker 版,并行下载能够跑满宽带。

安装

  使用 ssh 连接群晖并获取 root 权限 后,执行:

123
root@Alliot-blog:~# docker run -d --name rrshare \-v \-p \

Jellyfin

  Jellyfin 是 Emby 出来的一个免费版分支,与收费的 Emby 差别不大,甚至能够用旧版的 Emby 客户端来连接。在 DS918+ 系统下,Jellyfin 能够进行硬解(Emby硬解需要购买订阅)。

安装

  要硬解的话,我们需要先看一下核显是否正常驱动了:
  使用 ssh 连接群晖并获取 root 权限 后,执行:

123
ls /dev/dri/# 有如下输出则是有驱动card0  renderD128

  之后,使用命令行创建容器:

123456789
root@Alliot-blog:~# docker run -d --name jellyfin-docker \-v /volume1/docker/jellyfin/config:/config \-v /volume1/docker/jellyfin/cache:/cache \-v /volume1/video:/video \-p 8080:8096 \-p 8081:8920 \-device=/dev/dri:/dev/dri \jellyfin/jellyfin:latest

注意:

1234
-v 的 `/volume1/docker/jellyfin` 需要根据你自己前面创建的docker共享文件夹来修改`/volume1/video` 为你影片的存放路径-p 这里,8096 为容器的 http 端口,8920 为 https 端口,我把宿主机的8080映射给了容器的8096,之后我们可以通过 http://nas的ip:8080 来访问 Jellyfin 了-device 是将核显设备映射给容器内部使用,如果前面检查没有驱动则不需要该字段,也无法硬解了。

  之后浏览器打开 http://nas的ip:8080 ,按照指引完成配置后,在 jellyfin 控制台中的硬件加速处选择 “VAAPI” 硬件加速,转码线程推荐 “4”,其他默认。效果如下:
  

  另外一个问题就是,推荐在 Docker 套件中,将内存做限制,我目前给的 2G 限制,前几天使用 jellyfin 外网看电影的时候,出现群晖宕机,无法 ping 通的情况,强制下电重启才恢复,估计是内存被吃满的原因,限制内存后暂时没出现这个问题(jellyfin 挺吃内存,给多少吃多少)。

解锁网易云音乐灰色歌曲

  源于这个项目 unblockneteasemusic,可以通过代理,将网易云音乐的变灰歌曲解锁。

1234
root@Alliot-blog:~# docker run -d --name unblockneteasemusic \-p 666:8080 \-p 8081:8081 \nondanee/unblockneteasemusic

  打开网易云音乐,如图,配置 HTTP 代理,填入群辉 IP 和上面映射的 666 端口即可(如果需要在公网访问,记得去路由器里做端口转发):
群晖-网易云代理
保存重启客户端后即可。

自动更新容器

  Docker 应用有个很不方便的地方就是,没有自动检查镜像更新的功能,对于喜欢尝鲜的朋友来说,上游镜像有更新了第一时间就想要更新尝试一下,这时候一个名为 watchtower 的应用就出现了。
  watchtower 是一个可以监控正在运行的容器镜像是否有更新的工具,当本地镜像与远端镜像有差异的时候,可以自动使用当前容器的运行参数以新镜像重新创建一个新的容器,并删除旧的容器。这有点类似于我们手机应用商店更新 APP 一样。
  watchtower 本身也被打包为容器镜像,我们可以使用 ssh 连接群晖并获取 root 权限 后,通过以下命令来运行:

12
# 运行一次,更新所有的容器,并清除旧的容器docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once

  这样我们所有的容器就会更新到远端仓库最新的镜像版本了。
  大致介绍一下上面的命令,我们知道 Docker 是 server+client 的架构,上述命令 -v 参数映射的 /var/run/docker.sock 就是 Docker client 与 daemon 通信的 socket 文件,watchtower 通过这个文件来监控当前的所有容器。
  watchetower 还可以针对某一个容器进行监控,或是配置计划任务定时更新甚至邮件通知等。其他更多参数见官网 https://containrrr.dev/watchtower/arguments/

结语

  Alliot 暂时就只有这些值得推荐给大家的了,还有更多值得尝试的镜像欢迎在博客留言补充。

(0)

相关推荐

  • docker学习前述

    什么东西都不懂直接来学习docker是有点难的,学习docker需要哪些技术基础做支撑? Linux(相关常用的命令要会) springboot docker学习大纲如下: Docker概述 Dock ...

  • 手把手教你,docker安装nginx

    https://www.shengchulai.com/blog-vR35Nm9LAB.htm 1)下载镜像 打开网易蜂巢镜像中心 https://c.163yun.com/hub#/m/home/ ...

  • 群晖Docker设置阿里云国内镜像加速教程|日新博客

    前几天黑群晖突然挂掉了,出现存储空间已损毁,已经过去五六个小时了,看到这样的情况后自己都懵了,我也没有遇见过.幸运的是经过几个小时关机后,硬盘又复活的,所有的文件都在,就是套件都没有了,只能够重新安装 ...

  • NAS部署指南 群晖篇七——window下访问群晖nas文件的常用方法

    大家好,之前给大家分享过群晖系统的安装教程.安装之后接下来就是使用.nas最大的用途是做文件存储和共享使用.那么接下来我就给大家介绍下window下访问群晖nas的几种常用方式. 一.通过SMB共享n ...

  • “诗词写作入门”系列七:词别是一家

    本文作者徐晋如先生 诗词写作入门课程目录 1· "诗词写作入门"系列一:开栏访谈 2. "诗词写作入门"系列二:格律.押韵.平仄 3."诗词写作入门& ...

  • NAS部署指南 群晖篇七

    -window下访问群晖nas文件的常用方法 2021-05-02 18:41:34 创作立场声明:大家好,之前给大家分享过群晖系统的安装教程.安装之后接下来就是使用.nas最大的用途是做文件存储和共 ...

  • 群晖NSA的入门介绍

    现在大家手里都有大量的照片和短视频,而且不但有电脑还有手机.平板等.那么这些照片.视频如何分享到不同设备或办公室.家里如何轻松分享?用移动硬盘或U盘转移的时代,已经一去不复返了.下面简单介绍一下,我们 ...

  • 从入门到进阶必看,徕卡Q系列相机超全面实用技巧分享

    徕卡Q 系列真的是很受玩家们喜爱的相机,精妙绝伦的操作体验,毫不逊色的光学素质,都是让人迷恋上他的理由. 不少有了徕卡Q系列相机的朋友在实际使用时也许会遇到一些小疑问,小编整理更新了这些问题,并附上解 ...

  • 一文看懂Python系列文章 - 入门与进阶必备

    本文收集整理了本公众号已发表的一文看懂Python系列精华文章,建议先收藏后阅读. 入门篇 一文看懂Python列表.元组和字符串操作 一文看懂Python字典类型数据常见操作及排序 一文看懂Pyth ...

  • 群晖NAS入门教程第五节:download station PT下载设置及缓存等注意事项 | PT邀请码网

    download station是群晖的下载中心套件,内核是transmission,所以用来PT下载是完全没问题的,也是PT站所允许的. 一.download station设置 download ...

  • 群晖NAS系统DSM入门

    目录 简介 玩法 公网快联 局域网硬盘 资源下载 家庭媒体中心 DLNA/UPnP 音视频套件 搭建私有云 同步公有云 照片管理 云笔记 文件管理 文件访问 文件共享 文件请求 备份 用法 常规 控制 ...

  • Nas入门指南——学会用这些群晖套件,Nas系统用了就回不去

    大家好,上次给大家介绍了黑群晖的安装方法. 家庭NAS部署指南(二)--如何自己动手安装一台黑群晖主机 安装好了群晖系统后接下来就是使用了.我们今天就来介绍下几个群晖常用的套件使用. 群晖套件数量非常 ...