没作业抄也不用求人!一文吃透Docker部署!群晖威联通NAS进阶教程!    

NAS存储 12-21 11:03:01 0 0
⏹ 本文目录

Part1:Docker介绍

1️⃣ 什么是Docker?

2️⃣ Docker去哪儿找?

3️⃣ 不同版本是否有区别?

3️⃣ 不同部署方式有啥影响?

Part2:Docker代码组成

1️⃣ 映像版本

2️⃣ 端口映射

3️⃣ 文件夹挂载

4️⃣ 环境变量

Part3:各品牌NAS的Docker部署

1️⃣ 通用SSH命令行部署流程

2️⃣ 群晖自带管理器部署流程

3️⃣ 威联通自带管理器部署流程

4️⃣ 爱速特自带管理器部署流程

本文讲解的比较细,重点在看懂代码并学会基础部署,适合想自己摸索部署Docker的新手,建议收藏下。

不同的docker可能会涉及参数变更,以后还是会出针对性的抄作业教程,欢迎关注。

⏹ Docker介绍

开始教学前,我们需要先知道Docker是什么。

1️⃣ 什么是Docker?

简单点说,Docker是介于传统软件和虚拟机中的一种应用形态

Docker可以实现的功能从创建硬件虚拟完整系统到实现简单脚本都可以,丰俭由人,并且可以直接复制运行环境,部署起来非常方便。

2️⃣ Docker去哪儿找?

全球最大的社区是DockerHub,里面应用繁多,只有你想不到,几乎没有找不到的Docker。

官网地址:https://hub.docker.com/

各家NAS搜索和拉取Docker的库也是DockerHub,不管是哪家NAS的Docker管理器都可以跳转到DockerHub对应的页面查看部署文档。

如果想查看详细的代码,开源Docker一般都会关联到GitHub的项目地址,方便玩家fork之后进行二次开发。

3️⃣ 不同版本是否有区别?

当然有区别了,众所周知NAS的CPU分为X86和ARM两种,ARM版本还有可能细分到32位和64位,需要我们根据实际设备去正确选择,下图表示这个映像适用所有平台。

除了按照平台区分,更新频繁的Docker可能还会分为稳定版本和测试版本,一般用稳定版就好了。

不过我们部署的时候正常用Latest就好了,也就是最新版本,一般默认的最新版是X86。

如果你使用的是ARM设备且latest映像不支持ARM,可以在Tags里面搜索关键词ARM,找到合适的标签自行修改

4️⃣ 不同部署方式有啥影响?

没影响,不管是SSH命令行部署的还是通过自带管理器部署,正常用就好了,查看和修改都行。

SSH登录后可以使用ps命令查看Docker的状态:

docker ps -a

即可查看现在运行的Docker状态,包含运行状态、端口号、创建时间等等。

各家NAS自带的Docker管理器也能查看状态,比上面的ps命令看起来更直观一些。

⏹ Docker代码组成

演示案例为tiny media manager,是削刮电影信息的Docker。

项目地址:https://hub.docker.com/r/coolasice1999/tmm

项目首页下拉,看到docker run -d开头的一大段就是docker基础部署命令

只要弄明白这段代码的意义就知道如何部署,本段讲解这段代码内分别对应的意义。

1️⃣ 映像版本

在我们拉取配置Docker的时候,选择正确的标签非常重要,在标准的部署命令中一般在最后一行。

命令格式为aaaa/bbbb:cccc

aaaa/bbbb对应的是docker的映像名称

后面的:cccc对应的是版本。

首先访问项目地址,点击Tags即可查看Docker有哪些版本。

这里可以看到有latest和test两个标签,分别对应的是最新正式版本和测试版本,都是常用英文,应该都能看的懂吧。

下图可以看到适用的平台只是linux的amd64,如果你的设备是ARM平台则无法使用。

如果想部署适合你设备的正确版本,映像后缀需要选择对,单独拉取Docker映像的命令是docker pull,下图可以看到这两个版本拉取代码的区别在:后面。

如果你啥也不确认,部署的时候不要手动填版本标签,默认是最新!

如果你啥也不确认,部署的时候不要手动填版本标签,默认是最新!

如果你啥也不确认,部署的时候不要手动填版本标签,默认是最新!

2️⃣ 端口映射

在部署命令中-p开头的就是端口相关,目的是将docker内的端口映射到NAS的端口,转发关系见下图。

命令格式为-p aaaa:bbbb

-p的意思是配置端口关系(不能改)

前面的aaaa对应的是NAS的端口(可改可不改)

后面的bbbb对应的是docker使用的端口(不能改)

我们可以看到这里tmm的命令中有两条,也就是需要映射两个端口出去,关于端口的说明在项目页面一般都有说明,网页搜索port就能看到了。

根据作者说明,tmm这里用到的两个端口,5800用于网页访问,5900用于VNC访问,

如果你搞不懂就跟着抄,正常不需要修改。

如果后面Docker端口是80、8080或者443,前面的NAS端口一定要改成其他未使用的端口,如52052、23344这些不常用的端口号!

如果后面Docker端口是80、8080或者443,前面的NAS端口一定要改成其他未使用的端口,如52052、23344这些不常用的端口号!

如果后面Docker端口是80、8080或者443,前面的NAS端口一定要改成其他未使用的端口,如52052、23344这些不常用的端口号!

3️⃣ 文件夹挂载

在部署命令中-v开头的就是文件夹相关,目的是将原本必须在docker内的创建文件夹换成NAS现有的文件夹。

命令格式为-v /aaaa:/bbbb

-v的意思是配置文件夹关系(不能改)

前面的/aaaa对应的是NAS现有的目标挂载文件夹路径(必须改)

后面的/bbbb对应的是docker使用的路径(不能改)

每个文件夹的作用在项目地址都有说明,这里的/config用于存放配置文件,/media用于存放电影文件。

怎么查看NAS现有的文件夹路径具体看下文讲解吧,不同的NAS都有区别,并不是统一的方法。

确认NAS文件夹路径后,必须要把挂载目标改成实际的路径!

确认NAS文件夹路径后,必须要把挂载目标改成实际的路径!

确认NAS文件夹路径后,必须要把挂载目标改成实际的路径!

4️⃣ 环境变量

在部署命令中-e开头的是环境相关,目的是方便用户自己定义一些参数,比如账号密码时区这些,比较复杂,不懂的话不要乱改。

命令格式为-e aaaa=bbbb

-e的意思是配置环境变量(不能改)

前面的aaaa对应的是变量项目(不能改)

后面的bbbb对应的是实际参数(按需修改,不懂别动)

关于每个文件夹的作用,在项目地址都有说明,这里默认的对应的是使用组(GROUP_ID)、使用人ID(USER_ID)和时区(TZ)。

没事别动它!除非你看懂了规则!

没事别动它!除非你看懂了规则!

没事别动它!除非你看懂了规则!

⏹ 各品牌NAS的Docker部署

这里按照通用和不同品牌NAS系统区分,分开讲解。

1️⃣ 通用SSH命令行部署流程

演示案例为transmission,这是个经典的下载工具。

项目地址:https://hub.docker.com/r/linuxserver/transmission

现在NAS系统的内核基本都是Linux5.10,威联通、群晖、爱速特等系统都可以使用SSH进行Docker的部署,方法一样。

使用设备为威联通的264C,系统为最新的QTS 5.0。

首先先确认你的NAS打开了SSH功能,在系统配置里面找一下,默认端口号是22,所有NAS一样。

接着看一下NAS的文件夹路径。

威联通的比较特殊,打开之前创建的Docker,可以看到路径都是/share开头。

找到想挂载的文件夹,这里transmission文件夹,点击属性。

威联通显示的路径是/Container(文件夹的上一级),这是不对的路径,我们需要在前面和后面都加上正确的路径,前面加/share(固定的根目录),后面加/transmission(实际文件夹),综合之后就是:

/share/Container/transmission

确认SSH开启和文件夹路径后使用SSH登录,我使用的SSH工具是FinalShell,页面友好,新手基本都能看的懂,唯一缺点就是不支持IPv6域名解析。

下载地址:http://www.hostbuf.com/t/988.html

安装完成后打开Finalshell,这里是空的,先要创建一个访问链接。

点击左上角的打开图标。

继续点击左上角的打开,选择SSH连接(Linux)

名称必填,填个你能记得的名字。

主机IP填写内网分配的IP,外网填写公网IP。

SSH端口号默认是22,如果你自己改了SSH端口号就填实际的端口号。

用户名和密码就是你的NAS登录账号密码。

创建完连接后,双击即可访问。

这里需要将登录账号改成管理员,输入

sudo -i

回车

之后会提示输入密码,输入时候看不到字符,不是卡了,正常输入后回车确认。

群晖和爱速特没有下图这一步。

威联通会多一步,提示是否需要用普通的shell页面,这里输入

Q

回车

继续提示是否确认使用普通shell界面,输入

Y

回车

这里就用管理员账号SSH登录了这台264C。

Transmission的标准命令行如下:

docker run -d \ 下载映像,不动

--name=transmission \ 对应docker名称,可以修改

-e PUID=1000 \ 对应PUID,必须有,不动

-e PGID=1000 \ 对应PGID,必须有,不动

-e TZ=Europe/London \ 对应时区,必须有,不动

-e TRANSMISSION_WEB_HOME=/combustion-release/ 对应web页面配置,必须有,不动

-e USER=username 登录用户名称,修改

-e PASS=password 登录账号名称,修改

-e WHITELIST=iplist 白名单相关,删掉

-e HOST_WHITELIST=dnsnane list 白名单相关,删掉

-p 9091:9091 \ web访问端口的映射,不动

-p 51413:51413 \ 下载使用端口的映射(TCP),不动

-p 51413:51413/udp \ 下载使用端口的映射(UDP),不动

-v:/config \ 配置文件挂载文件夹,必须改

-v:/downloads \ 下载完成所在挂载文件夹,必须改

-v:/watch \ 种子监控挂载文件夹,必须改

--restart unless-stopped \ 自动重启,不用改

lscr.io/linuxserver/transmission 版本标签,如果你是ARM设备改成对应的ARM标签

这里看到了-e有8条,上面都是正常的账号和时区相关。

比较特殊的是有两个Whitelist相关的环境变量,也就是白名单,根据作者的说明可以直接删除。

所以这里我删掉了白名单相关的变量配置,修改登录账号密码,同时将目标挂载的NAS文件夹改成了上文中查到的文件夹路径,修改后的代码如下:

docker run -d \

--name=transmission \

-e PUID=1000 \

-e PGID=1000 \

-e TRANSMISSION_WEB_HOME=/combustion-release/

-e USER=admin \ 登录用户名改成了admin

-e PASS=adminadmin \ 登录密码改成了adminadmin

-p 9091:9091 \

-p 51413:51413 \

-p 51413:51413/udp \

-v /share/Container/transmission:/config \ nas文件夹改了

-v /share/Downloads:/downloads \ nas文件夹改了

-v /share/Container/transmission/watch:/watch \ nas文件夹改了

--restart unless-stopped \

lscr.io/linuxserver/transmission:latest 新增了最新版的标签

修改完代码后回到Finalshell,将命令直接复制到输入框。

全部复制,不要一条条复制!

全部复制,不要一条条复制!

全部复制,不要一条条复制!

粘贴完成后,回车,NAS会自动执行,等到下面出现新的待输入提示即可。

PS:由于是全新创建包含拉取映像,所以部署时间根据你的网速决定。

回到威联通的网页后台,可以看到刚创建的Transmission已经在运行中。

网页输入IP:端口,这里的端口号就是代码中的9091,实际为:

192.168.5.21:9091

这里很多新手表示访问不了,冒号要英文的:,不是中文的:

输入账号密码就能进入transmission的网页后台了。

2️⃣ 群晖自带管理器部署流程

演示案例为ddns-go,这是个域名管理工具。

项目地址:https://hub.docker.com/r/jeessy/ddns-go

使用设备为群晖的DS220+,系统为老版本的DSM7.0。

群晖自带的管理器需要在套件中心中安装,起名比较粗暴,直接叫Docker

安装好之后进入docker,点击注册表,右上角搜索框输入ddns搜索

点击搜索结果右上角的箭头可以跳转到Dockerhub上的项目地址,双击docker名称即可下载映像。

双击后会弹出标签选择窗口,用默认的latest。

点击映像即可查看下载的映像(群晖起名是真粗暴啊)。

趁着下载的功夫,跳转项目地址看下作者的说明,这里作者给出了四种挂载方式。

这里我使用挂载文件夹的方式,基础代码

docker run -d

--name ddns-go Docker名称,想改就改

--restart=always 重启配置,不用动

--net=host 网络使用host模式,不用动

-v /opt/ddns-go:/root 挂载文件夹,需要挂载的是/root

-p 9876:9876 web后台访问端口,需要映射的是9876

jeessy/ddns-go:latest 版本标签,如果你是ARM设备改成对应的ARM标签

拆分完后先创建需要挂载的文件夹,进入file station,这里我创建的是ddns-go。

如果想用SSH方式部署Docker,查看文件夹路径的方法是右键该文件夹,点击属性

位置这里的路径就是真实路径,比威联通简单多了。

回到Docker管理器,双击映像创建Docker,点击弹出窗口的高级设置

点击存储空间,这里对应的是挂载文件夹,按照要求将/root挂载到刚才创建的ddns-go文件夹

端口设置对应的是端口映射,按基础代码修改即可。

环境这边已经预制好了,不用管,默认即可。

全部配置完成后,点击应用,一路下一步就好了。

点击容器可以查看docker的运行状态。

访问NAS IP:9876即可进入web后台。

如果配置错误或者想调整配置,先暂停docker。

选中docker后点击编辑,即可重新配置Docker的各个参数。

3️⃣ 威联通自带管理器部署流程

演示案例为ubuntu桌面版,就是个虚拟机。

项目地址:https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc

使用设备为还是刚才的威联通的264C,先去App Center装好Container Station。

点击create,搜索ubuntu。

在搜索结果中找到这个desktop版本,点击名称可以跳转官方

在项目地址我们可以看到基础代码:

docker run

-p 6080:80 Web页面端口映射,需要映射的是80

-p 5900:5900 VNC页面访问端口映射,需要映射的是5900

-v /dev/shm:/dev/shm 挂载文件夹关系,需要挂载的是:/dev/shm

dorowu/ubuntu-desktop-lxde-vnc 版本标签,如果你是ARM设备改成对应的ARM标签

老样子先创建挂载文件夹,这里命名为ubuntu。

接下来开始创建Docker,点击install后弹出版本选择,这里用latest。

点击advanced settings,进入高级配置。

作者在页面有很多可选变量说明,这里以调整显示分辨率为例。

Environment对应的是环境变量,右上角点击add创建一个空的变量,按照作者的提示填写。

Network对应的是端口映射,右上角点击add创建一个空的关系,按照作者的提示填写。

Shared Folders对应的是挂载文件夹,右上角点击add创建一个空的关系,按照作者的提示填写。

全部配置完成后点击ok。

在Container Station的右上角可以查看部署进度。

等创建完成后,浏览器访问NAS IP:6080即可访问这个ubuntu虚拟机。

4️⃣ 爱速特自带管理器部署流程

演示案例为EMBY,非常不错的影音推流软件。

项目地址:https://hub.docker.com/r/emby/embyserver

使用设备为爱速特的AS5304T,系统为ADM最新的4.0版本。

爱速特用的管理器是我个人非常喜欢的第三方Docker管理器Portainer(为什么喜欢看下面),App Central搜索安装即可。

第一次进入的时候需要配置下账号密码,这里的密码不是NAS的密码,只用于登录Portainer管理器。

进入主页面后,点击左侧栏Container,这里可以看到运行中的Docker,点击add container开始创建。

在emby的项目地址找到部署命令,基础命令为:

docker run -d \

--name embyserver \ Docker名字,随便改

--volume /path/to/programdata:/config \ 系统文件挂载文件夹,需要挂载的是/config

--volume /path/to/share1:/mnt/share1 \ 媒体文件挂载文件夹,需要挂载的是/mnt/share1

--volume /path/to/share2:/mnt/share2 \ 媒体文件挂载文件夹(可选),需要挂载的是/mnt/share2

--net=host \ 环境变量,对应的是网络,不用动

--device /dev/dri:/dev/dri \ 设备变量,对应的是硬解驱动,必须配置

--device /dev/vchiq:/dev/vchiq \ 设备变量,对应的是树莓派的,删掉

--runtime=nvidia \ 设备变量,对应的是N卡的GPU,没有就删掉

--publish 8096:8096 \ web后台访问端口(http),需要映射的是8096

--publish 8920:8920 \ web后台访问端口(https),需要映射的是8920

--env UID=1000 \ 环境变量,需要加进去,数值不变

--env GID=100 \ 环境变量,需要加进去,数值不变

--env GIDLIST=100 \ 环境变量,需要加进去,数值不变

emby/embyserver:latest 版本标签,如果你是ARM设备改成对应的ARM标签

搞清楚代码对应之后开始配置,先按要求创建挂载的文件夹,点进文件总管,这里我创建的是emby。

右键属性可以看到文件夹所在的路径和文件夹名称,后面挂载的时候需要填写完整路径,这里的emby文件夹完整路径应该是:

/volume1/Docker/emby

Portainer比较好的是能找到每一个对应的地方,值直接复制进去就可以了。

最上面对应的是docker名称、映像版本和端口映射,具体见下图,直接根据基础命令复制粘贴。

下拉网页开始配置其他的参数,首先是挂载文件夹,点击volumes,点击map additional volume添加挂载关系,然后点击右侧的bind(不然是直接挂载硬盘而不是文件夹),填写对应的文件夹关系。

点击Env,这里对应的是环境变量,点击add an environment variable创建规则,按要求填写。

这里不填其实也是可以的,一般Docker都会有针对的预设。

代码中有一条device相关的代码,主要用于调用显卡硬解,这里点击Runtime&Resources,找到device,点击add device,按照代码填写即可。

全部确认完成后上拉网页,点击Deployment the container,接下来等就好了。

部署完成后会跳转到状态页面,可以查看状态。

浏览器输入NAS IP:8096即可访问emby后台了。

⏹ 相关设备推荐

本文使用的设备推荐,大家可以按需购买。

1️⃣ 威联通 264C

简介:本文使用的案例设备,威联通新款NAS,今年刚发布的N5105处理器,四核四线程+UHD600核显足够玩Docker和硬解,原生自带两个NVME固态硬盘槽位,方便用户创建PCIE高速存储池,非常霸道,这套配置应该也是2022年主流成品NAS的标准配置了。

2️⃣ 群晖 DS220+

简介:本文使用的案例设备,目前性价比比较高的白群晖,J4025双核虽然有点寒碜,但是玩基础Docker完全没问题,群晖的系统大家都知道,NAS行业里面算最好用的,这也是最大的卖点,想一步到位入正养老的可以考虑下。

3️⃣ 爱速特 AS5304T

简介:本文使用的案例设备,爱速特的特点是纯围绕Docker打造的ADM系统,相比上述两家对硬件利用率会更好一些,这款使用的是J4125的四核四线程CPU,搭配双2.5G网口配置基本是民用级别顶天了,如果纯玩Docker你会觉得用起来非常舒服。

4️⃣ 蒲公英 X1 组网盒子

简介:本文使用的案例设备上联,很多朋友没有ipv4的公网IP,威联通的虚拟交换机对IPv6支持很差,爱速特也是,部署的Docker没办法通过IPv6+端口号直接访问,但有了X1问题就不大了,轻轻松松组建SD-WAN,异地使用IPv4的内网IP即可访问Docker,价格也不贵,活动时候一般六十多块钱,部署省事省心,设备少的朋友推荐使用,设备多的话还是建议把SD-WAN做在网关上。

5️⃣ 希捷 酷狼 机械硬盘

简介:本文使用的案例设备,希捷酷狼全系都是 CMR,核心技术AgileArray 技术针对硬盘在 NAS 网络存储环境进行了优化,同时也是全球最先进的硬盘电源管理机制之一,配合酷狼的健康管理(IHM)可以有效实现预防、干预和恢复功实时保护硬盘的数据安全,最棒的就是附赠一次免费的数据恢复(三年内)。

⏹ 教程完毕,你学废了吗?

没作业抄也不用求人!一文吃透Docker部署!群晖威联通NAS进阶教程!   
网友评论