折腾笔记

折腾笔记

轻松驾驭Docker:绿联NAS用户的必备指南

2024-10-18

前言

随着数字化时代的到来,网络存储设备(NAS)已成为许多家庭和中小型企业的重要工具,远远超出了简单的文件存储功能。通过Docker、虚拟机等技术,NAS的潜力得以进一步扩展。

绿联DXP6800Pro是一款6盘位NAS,搭载了英特尔第十二代1235U 10核心12线程处理器并且搭载了Xe锐炬核显,提供了非常强大的解码性能,后置了双万兆、HDMi、PCIE4.0、USB接口,前置SD4.0、双雷电4、USB3.2接口,内置双M2 SSD拓展、双DDR5内存、板载128G存储,配置满分、拓展性满分、可玩性满分。

随着UGOS Pro版本的更新,绿联云内置的Docker功能已经做的非常完美了,本教程将详细介绍如何在绿联NAS系统中使用Docker,从基础操作到进阶项目部署,帮助用户充分发挥绿联NAS的灵活性和可玩性。


什么是Docker

Docker 是一个用来打包和运行程序的小工具。它可以把你需要的软件和它的所有依赖打包在一起,这样你不用担心环境配置的问题,随时随地都能运行这些程序。

对于你的实际需求,Docker 可以帮你做很多事情,比如:

  • 搭建博客:用 Docker 可以快速创建一个博客网站,比如用 WordPress,一键就能部署起来。

  • 搭建导航页:你可以用 Docker 搭建一个专门的网页来存放你常用的网站链接,方便集中管理和访问。

  • 搭建影音库:Docker 也能让你轻松搭建 Plex、Emby 之类的家庭媒体库,把你的视频、音乐都集中管理起来,随时播放。

简单来说,借助绿联Docker功能可以轻松部署多种服务,极大增加NAS可玩性。

绿联Docker Ui介绍

1、第一使用绿联NAS时候需要在应用中心搜索安装Docker,绿联的docker管理器页面设计非常优秀,可以负责任的说,在目前所有NAS系统中属于T0级别,这里首先对页面进行一个整体介绍,方便初次接触Docker的用户有一个大概了解。

2、安装完成后打开绿联Docker,首先显示的是概览信息,在概览信息中可以对整个docker环境进行大概了解,包括资源占用情况、容器运行状况、也可以使用官方提供的资源统计查看各个容器的资源占用比,在右上角有docker相关教程,从中可以找到热门应用的部署教程。

3、点击概览对应类别名称,可以快速进入相关模块查看更加详细的信息。

4、绿联docker提供了项目功能,也称之为docker-compose,是一个容器编排工具,在项目章节中我们会细说。

5、在容器中,您可以查看所有创建的Docker容器,包括已启动和未启动的。该页面支持手动创建Docker服务,并允许对容器执行导出、导入、克隆以及镜像更新等操作。可以说,想要创建、管理或编辑容器,您只需进入此页面即可找到所有相关设置。

6、镜像可以理解为容器的系统文件合集,所有容器都是基于这些镜像文件运行的,其中常用镜像为热门镜像,绿联提供了较为详细的部署教程。

7、镜像仓库中可以按照名称搜索镜像,并且下载需要的版本,如果无特殊要求,一般下载最新版本(latest),下载完成的镜像会出现在本地镜像中。

8、网络中可以查看到各容器使用那些网络模式,常见的网络模式如下,新手此模块保持默认就行,无需更改,一般最常用的是host和bridge模式。

  • bridge:默认模式,适用于大多数容器之间的通信。

  • host:容器直接使用宿主机的网络栈,性能更高,但隔离性较差。

  • macvlan:允许容器获得独立的MAC地址,适合与物理网络集成。

  • none:完全禁用网络,适合不需要网络的场景。

9、日志模块为容器创建部署日志,容器创建成功和失败会在次生成记录。

10、管理提供docker一键迁移功能,这点非常好评,在更换硬盘时,此功能非常实用,只需要几部就可以将所有容器镜像配置等迁移到新硬盘上,避免重复配置。

11、以上对绿联整体docker ui进行了介绍,相信已经有了一个初步的了解,接下来咱们将通过几个应用的搭建,来体验一下docker的魅力。

镜像加速器配置

在搭建服务之前,首先是需要下载镜像,但是因为网络问题,在下载镜像的时候速度不理想,这时候就需要配置镜像加速器了,绿联docker ui中也提供了多种加速方式,根据需求选择即可。

1、打开docker→镜像→设置。

2、官方提供了多种镜像加速方法,介绍一种新手较为容易配置的方法,点击加速器配置,加速器URL链接填写https://docker.m.daocloud.io 然后点击保存,docker会重启。

3、下载一个镜像试试,能看到镜像下载进度,镜像加速配置成功。

4、绿联docker也提供了镜像代理加速的方式,勾选代理服务器,然后输入代理服务器地址即可,重启docker即可,绝对好评的功能。(我更推荐这种方式)。

容器创建

绿联的容器创建有两种方式,一种是通过UI页面配置,一种是使用项目,我将分别演示,Ui搭建比较适合新手,下面将使用图形页面部署一个媒体库embyserver。

1、打开docker→镜像,在右上角搜索框中搜索emby,下载linuxserver/emby,版本下载最新的(默认latest表示最新镜像)。

2、点击本地镜像,找到下载好的emby镜像,点击"+"创建容器。

3、 容器名称:自定义,CPU\内存限制没有特殊需求不用修改,因为emby需要硬解码,所以勾选显卡能力。

4、根据emby的预配置,会自动生成配置目录映射关系,建议保持默认,自动分配的目录为:在docker目录下生成和容器名称同名的文件目录,第二行是添加的媒体目录,昨天是存放电影的目录,右边/movie是在emby内部可以看到电影目录。

5、自动分配功能生成的目录,和容器同名。

6、NAS只有一个IP,怎么区别部署在上面的服务呢,这时候就需要用到端口,比如端口1000表示一个服务,端口2000表示一个服务,在访问NASIP+不同的端口就表示访问不同的服务,在同一台设备上端口不能重复使用,绿联NAS会自动给容器分配未使用过的端口,新手保持默认即可,左边的是绿联自动分配端口,右边是容器端口(容器初始定义,不能修改)。

7、环境变量、特权模式、权限功能涉及到一些进阶操作,一般保持默认即可,无需修改。

8、其实使用手动创建容器的时候,一般需要修改的只有名称、端口、存储目录这几项,其他配置使用默认即可,其中最重要的就是存储目录,一般都是需要修改NAS数据目录(左边),经过以上配置,点击确定,弹出提示继续点击确定。

9、容器创建成功。

10、稍等片刻,点击容器右侧链接按钮即可进入相应服务,当然直接使用NASIP:端口。

11、点击容器可以进入容器详情,可以看到绿联docker面板提供了非常详细的信息,包含容器的各种信息以及资源占用,并且可以在面板中直接对容器进行更新。

什么是项目

项目也称之为Docker Compose 是一个容器编排工具,用来一次性管理多个容器应用。它通过一个简单的配置文件(docker-compose.yml)定义应用需要的所有服务,比如数据库、后端、前端等,然后你只需用一条命令就可以启动这些服务。

相比 Docker UI 面板的优势

  1. 更自动化:你不需要手动点击 UI 面板去配置每个容器,只要写好配置文件,用一条命令就能运行所有的服务。

  2. 可重复使用:配置文件可以保存和分享,任何人都可以用这个文件快速部署相同的应用。

  3. 适合多容器应用:如果一个应用需要多个服务一起运行,Docker Compose 能让你轻松管理,而 UI 面板则更适合简单场景。

  4. 版本控制:你可以把这个配置文件像代码一样放到版本控制工具中,方便跟踪和管理。

举个例子

一个简单的 Docker Compose 文件可能会像这样:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: example

用这个文件,你可以同时启动一个 Nginx 服务器和一个 MySQL 数据库,而不用手动配置每个容器。

项目创建

接下来我们将使用项目功能来完成上面emby项目的创建,来看一下其中的区别。项目的配置文件统一为docker-compose.yml,这个配置文件我们可以手动编写,或者去相关应用官网查找,一般我们下载的好的镜像,在其主页都会有安装说明,较多的镜像都会提供docker-compose项目文件,我们只需根据自己的配置修改其中的几项参数即可。

1、 绿联NAS常用热门镜像会有教程,在教程中可以查看到对应的docke-compose配置文件。

2、打开docker→镜像→本地镜像,点击链接图标可以跳转到对应镜像的docker hub仓库。

3、相对应仓库主页,所有关于这个镜像的配置说明在这个主页中都可以找到,英文不好的可以使用网页一键翻译。

4、emby的dokcer hub主页介绍非常详细,往下翻动直接找到docker-compose文件,或者可以使用网页搜索功能Ctrl+F搜索docker-compose,也可以直接跳转,下面图片中是emby给出的docker-compose配置文件。

5、emby的docker-compose配置文件注释说明。

services:定义容器服务,每个docker-compose开头都是这个
  emby:  # 服务名称,定义一个名为 emby 的服务
    image: lscr.io/linuxserver/emby:latest  # Docker 镜像,指定从 LinuxServer 拉取最新版本的 Emby 镜像
    container_name: emby  # 容器名称,给这个容器命名为 emby
    environment:  # 定义环境变量
      - PUID=1000  #用户ID,用于指定在容器内运行服务的用户权限,确保它与主机用户权限匹配  PUID可以在绿联项目的编辑框右上角找到
      - PGID=1000  # 用户组ID,同样用于匹配主机的用户组权限,PGID可以在绿联项目的编辑框右上角找到
      - TZ=Etc/UTC  # 设置容器内的时区为UTC,可以更改为你所在的时区,例如 `Asia/Shanghai`
    volumes:  # 映射宿主机的路径到容器内的路径,持久化数据
      - /path/to/emby/library:/config  # 映射宿主机的配置文件目录到容器内的 `/config` 目录,用于保存 Emby 配置
      - /path/to/tvshows:/data/tvshows  # 映射宿主机的电视节目文件夹到容器内的 `/data/tvshows` 目录,用于访问电视节目数据
      - /path/to/movies:/data/movies  # 映射宿主机的电影文件夹到容器内的 `/data/movies` 目录,用于访问电影数据
      - /opt/vc/lib:/opt/vc/lib #optional  # 可选,Raspberry Pi 上特有的硬件加速库
    ports:  # 暴露容器的端口,用于外部访问服务
      - 8096:8096  # 映射宿主机的 8096 端口到容器的 8096 端口,Emby Web 客户端的 HTTP 访问
      - 8920:8920 #optional  # 可选,映射宿主机的 8920 端口到容器的 8920 端口,用于 HTTPS 安全连接
    devices:  # 指定需要通过容器访问的硬件设备,通常用于硬件加速
      - /dev/dri:/dev/dri #optional  #调用显卡,用于硬件加速解码
      - /dev/vchiq:/dev/vchiq #optional  # 可选,VideoCore Interface,用于Raspberry Pi上的硬件加速
      - /dev/video10:/dev/video10 #optional  # 可选,指定视频设备,可能是摄像头或硬件解码设备
      - /dev/video11:/dev/video11 #optional  # 可选,额外的视频设备
      - /dev/video12:/dev/video12 #optional  # 可选,额外的视频设备
    restart: unless-stopped  # 设置容器自动重启策略,除非手动停止,否则会自动重启容器

6、emby配置文件比较详细,其实很多参数保持默认即可,在大多数应用的docker-compose中,只需要关注容器目录映射(volumes: )、端口(ports:)这两个参数即可,其他的一般保持默认就行,下面是我根据手动部署emby的配置修改的docker-compose文件,这里我修改了下面几个部分:

  • 容器名称(container_name):修改为embyserver111

  • 环境变量(environment):时区修改为Asia/Shanghai(上海)

  • 存储空间(volumes):配置目录映射给容器目录config、媒体资源目录映射给PTHHD

  • 端口(ports:):端口修改成了未使用的33741(http) 33742(https)

services:
  emby:
    image: lscr.io/linuxserver/emby:latest
    container_name: embyserver111 # 容器名称,为了区分手动的我将名称改成了embyserver123
    environment:  
      - PUID=1000  绿联docker编辑框提供的用户ID
      - PGID=10    绿联docker编辑框提供的用户ID
      - TZ=Asia/Shanghai
    volumes:  
      - /volume1/docker/embyserver111:/config  # emby配置目录,这里咱们只需要修改冒号左边的,右边的不能修改,复制doker目录下新建的用于存储emby配置的文件夹路径,然后粘贴到此处。(方法见补充)
      - /volume1/PTHHD/smbPTHHD:/PTHHD    #这条目录映射关系是将NAS中用于存储电影的文件夹smbPTHHD路径映射给容器中的PTHHD
    ports:  # 暴露容器的端口,用于外部访问服务
      - 33741:8096 #http
      - 33742:8920 # https
    devices:
      - /dev/dri:/dev/dri #调用显卡
    restart: unless-stopped 

补充:可以鼠标右击目录,然后复制位置路径。

7、打开docker→项目→创建,输入项目名称,面板会自动在docker目录下创建同名文件夹用于存放docker-compose项目文件,然后将上一步编辑好的配置文件粘贴到文本框。

8、绿联的docker会自动检测配置文件,如果出现错误,会在下方进行提示,按照错误提示修改即可。

9、修改正确后点击立即部署,面板会自动下载服务需要的镜像,然后按照设置的参数进行构建。(因为之前已经下载过emby的镜像,所以部署很快)

10、再次点击项目,可以看到部署的项目正在运行,点击可以进入项目详情。

11、点击项目中的容器,然后点击访问链接,成功访问emby初始化页面,项目搭建emby成功。

12、后续修改项目时,只需要在compose配置中修改对应的文件,然后点击重新部署即可,非常方便。

13、另外有一点我感觉是非常好评的,绿联的docker-compose编辑器支持自动补全提醒,这点非常好。

项目迁移

docker-compose的迁移非常方便,任何环境只要支持docker即可迁移,下面我将把我的博客haloblog从群晖迁移到绿联。

1、将包含有docker-compose配置文件的halo完整文件压缩下载后上传到绿联docker目录,然后在解压(解压缩非必须,为了迁移方便)。

2、项目名称输入halo,存放路径选择步骤1中上传的haloblog文件夹,compose配置选择导入上传文件夹中的docker-compose.yaml,配置文件导入成功后需要注意两个参数一个是存储空间目录路径是否和之前环境相同,端口是否已经被占用。

3、容器会自动拉取并创建服务。

4、项目创建成功,这个项目中就包含这halo运行需要的数据库和博客两个容器。

5、访问容器链接,博客项目迁移成功。

常见问题解决办法以及补充

1、出现如下报错,表示网络访问不通畅,参考上面教程配置镜像加速器。

2、导入项目时,在导入完docker-compose配置文件的时候,出现已经存在docker-compose.yaml文件时,进入相对应的配置目录,将原有的doker-compose.yaml删除或者修改为其他名称,在部署即可。

3、遇到容器或者项目无法启动时,请附上相对应的日志,便于其他人给出解决办法,容器日志查看办法。

手机端Docke操作

绿联手机端提供了完成的容器创建、编辑、升级等操作,不便于使用电脑操作的时候可以使用手机编辑。

1、整体页面比较清晰,下面是各导航栏项目主页,点击主页上面对应的模块或者镜像即可进入二级目录。

2、手机端创建容器。

3、其他功能大家可以使用手机端自行了解。

总结

在本教程中,我详细讲解了如何在绿联UGos PRO系统上使用Docker,包括手动创建容器和进行高级项目部署。通过这些操作,我可以轻松搭建博客、导航页、媒体库等应用。同时,我还介绍了镜像加速器配置、容器管理、项目创建等关键步骤。我的目标是通过这些实例和技巧,帮助大家深入了解绿联NAS的Docker功能,提升日常使用效率和灵活性,满足各种场景需求,同时让NAS变得更加有趣和实用,本篇教程结束,谢谢大家。

推荐

目前DXP6800 Pro京东合理凑单后可以做到4400元左右,如果后续满减补贴价格能做到更低,在目前成品NAS中这个绿联的这个配置应该是性价比最高的,另外追求性价比的大家也可以关注一下绿联DXP4800四盘位,目前入手不到2K,预售还有价值149的防雷排插赠送,感兴趣的可以看看。后续我还会出更多的玩法,感兴趣的可以关注一下。