参考资料

  1. Docker/DockerHub 国内镜像源/加速列表
  2. docker安装nginx详细说明以及案例
  3. docker安装详细说明以及案例
  4. docker镜像(Image)是什么?
  5. Docker在CI/CD中的作用是什么?
  6. NAS中为何使用Docker?
  7. Docker与Kubernetes的关系?
  8. 与虚拟机相比,Docker的优势是什么?

NAS 中使用 Docker 的原因

  1. 隔离性

    • 每个容器独立运行,避免应用冲突。

    • 资源(CPU、内存、存储)可按需分配,防止单一应用占用过多资源。

  2. 便携性

    • 镜像(Image)打包应用及依赖,确保在不同 NAS 设备上运行一致。

    • 迁移方便,无需重新配置环境。

  3. 资源高效

    • 共享主机内核,比虚拟机更轻量,适合 NAS 有限的硬件资源。

  4. 快速部署

    • 预构建镜像一键启动,省去手动编译安装步骤。

    • 支持版本管理,方便回滚或升级。

  5. 扩展性

    • 可同时运行多个服务(如 Plex、Transmission、Nextcloud)。

    • 使用 Docker Compose 编排复杂应用栈。

  6. 安全性

    • 默认隔离,减少攻击面。

    • 可限制容器权限,防止越权访问 NAS 数据。

  7. 社区支持

    • 大量现成镜像(如 Jellyfin、Home Assistant)。

    • 开源生态持续更新维护。

  8. 维护简便

    • 日志、监控工具集成,便于排查问题。

    • 可清理无用容器/镜像,释放存储空间。


NAS 上 Docker 的配置与操作方法

1. 安装 Docker

  • 群晖(Synology)

    • 进入 “套件中心” → 搜索 Docker → 安装。

  • 威联通(QNAP)

    • 进入 App Center → 搜索 Container Station → 安装。

  • TrueNAS / OpenMediaVault

    • 通过插件或命令行安装 Docker(如 pkg install docker)。

2. 运行容器

  • 方法 1:图形界面(以群晖为例)

    1. 打开 Docker注册表 → 搜索镜像(如 plex)。

    2. 下载后,在 映像 列表双击运行。

    3. 配置 端口映射存储卷(Volume)(如 /docker/plex:/config)。

    4. 启动容器。

  • 方法 2:命令行(SSH)

    docker run -d \
      --name=plex \
      -v /volume1/docker/plex:/config \
      -v /volume1/media:/media \
      -p 32400:32400 \
      plexinc/pms-docker
    • -d:后台运行

    • -v:挂载存储卷(NAS 路径:容器路径)

    • -p:端口映射(主机端口:容器端口)

3. 管理容器

  • 查看运行中的容器

    docker ps
  • 停止/启动/删除容器

    docker stop plex
    docker start plex
    docker rm plex
  • 更新容器

    docker pull plexinc/pms-docker  # 拉取最新镜像
    docker stop plex && docker rm plex  # 删除旧容器
    docker run ...(重新运行)

4. 使用 Docker Compose(推荐)

  • 创建 docker-compose.yml 文件(示例):  

    version: '3'
    services:
      plex:
        image: plexinc/pms-docker
        container_name: plex
        volumes:
          - /volume1/docker/plex:/config
          - /volume1/media:/media
        ports:
          - "32400:32400"
        restart: unless-stopped
  • 运行:  

    docker-compose up -d

5. 数据备份与恢复

  • 备份容器配置

    • 只需备份挂载的存储卷(如 /docker/plex)。

  • 迁移到新 NAS

    • 导出 docker-compose.yml,在新设备上重新运行。


典型应用场景

  • 媒体服务器:Plex、Jellyfin

  • 下载工具:qBittorrent、Transmission

  • 云存储:Nextcloud

  • 智能家居:Home Assistant

  • 开发环境:MySQL、Redis

通过 Docker,NAS 可以高效、