OpenMediaVault7 安装配置docker

发布于 12 天前  13 次阅读


参照官网教程omv7:docker_in_omv [omv-extras.org]

1. 插件安装

1.1 安装openmediavault-symlinks

该插件使用符号链接代替完整路径,若无需求可跳过。在文件系统中,我们可以看到对应磁盘的挂载点,我们可以通过此插件用简介的符号代替此路径

  • 安装完插件后在服务>Symlinks中创建。来源为挂载点,目标为你的简写符号

1.2 安装openmediavault-compose

  • 系统 > 插件 中,搜索并安装 openmediavault-compose 插件
  • 启用 docker 存储库。在 系统 > omv-extras 中,单击 Docker repo按钮,然后保存

2. Docker设置

2.1 创建文件夹和系统设置

这里共需要创建4个文件夹 appdatadatabackup_composedocker

  • 这里我将它们创建在系统盘的SSD中,如有多的盘则可依照官方将data文件夹创建在其他盘
  • 文件的详细架构如下
  • 依照上图在 服务>Compose>设置 中进行对应配置,然后点击保存
appdata
  • 此文件夹包含容器的配置文件和持久性数据,包括 yml 文件和 env 文件的副本
  • 手动修改此文件夹内容通常不建议,除非你知道自己在做什么
data
  • 此字段的使用是可选的,通常用于存储容器使用的持久性数据
backup_compose
  • compose 插件允许您计划持久性容器数据的自动备份。这些备份将存储在此文件夹中,通常是用于数据备份和恢复
docker
  • 此文件夹包含 docker 内部使用的文件,例如下载的映像和 docker 运行所需的其他信息
  • 除非您有特殊配置,否则无需保留此文件夹中的数据,因为每次启动容器时,如有必要,其中的所有内容都会自动下载。

2.2 创建用户 appuser

  • 用户>用户 中新建一个用户名为appuser
  • appuser添加到所需的组,如要对 Intel GPU 使用硬件转码,则需要将此用户添加到 render 和 video 组。不要将 appuser 添加到 docker 组。这是一个安全漏洞。
  • 接着为创建好的appuser添加共享文件夹权限,确保至少必须具有对 appdata 文件夹的写入权限。为其余权限选择权限,并确保拒绝容器不需要运行的任何内容
    切勿指定 admin 用户 (UID=998) 或 root 用户 (UID=0) 来管理容器。这是一个严重的安全漏洞。这样做会给容器完全的自由,你不知道容器会在你的系统中做些什么

2.3 全局环境变量

此步骤非必须,在存在多个compose 文件的场景时会很便利
我们可以在 服务>Compose>文件 中的编辑全局环境文件 中定义全局环境变量。能够便利地用于定义文件夹或运行容器的用户的路径
我们只需定义一次 compose 文件,就不需要修改它。即使我们重新安装 OMV 系统,我们也只需要更新这些全局变量,容器便能正常工作

  • 全局变量文件中定义的变量:
# THE FOLLOWING VARIABLES CAN BE USED IN ANY COMPOSE FILE
# THEIR VALUE WILL BE REPLACED BY THE VALUE ASSIGNED HERE
# YOU CAN ADD AS MANY VARIABLES AS YOU NEED
#
#
# Customize the PID and GID value of your appuser user.
# You can see it in the OMV GUI in the USERS > USERS tab
#
APPUSER_PUID=1001
APPUSER_PGID=100
#
# Customize your time zone value.
# You can see it in the OMV GUI in the SYSTEM > DATE & TIME tab
#
TIME_ZONE_VALUE=Asia/Shanghai
#
# In this file you can define how many paths you need for different compose files.
# The following are examples corresponding to the example system in the Docker on OMV document on the omv-extras wiki.
# Customize the values ​​according to your system configuration.
#
PATH_TO_APPDATA=/docker/docker_appdata
PATH_TO_DATA=/docker/docker_data

PATH_TO_DOCUMENTS=/srv/mergerfs/pool/data/documents
PATH_TO_MEDIA=/srv/mergerfs/pool/data/media
PATH_TO_MOVIES=/srv/mergerfs/pool/data/media/movies
PATH_TO_PHOTOS=/srv/mergerfs/pool/data/media/photos
PATH_TO_BACKUPS=/srv/dev-disk-by-uuid-384444bb-f020-4492-acd2-5997e908f49f/backups
PATH_TO_DOWNLOADS=/srv/dev-disk-by-uuid-384444bb-f020-4492-acd2-5997e908f49f/downloads
  • 现在我们可以定义以下 compose 文件:
---
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=${APPUSER_PUID}
      - PGID=${APPUSER_PGID}
      - TZ=${TIME_ZONE_VALUE}
    volumes:
      - ${PATH_TO_APPDATA}/jellyfin/config:/config
      - ${PATH_TO_APPDATA}/jellyfin/cache:/cache
      - ${PATH_TO_MEDIA}:/media
    ports:
      - 8096:8096
    restart: unless-stopped
  • PUID 和 PGID →您可以在 用户>用户 中查看 appuser 的 UID 和 GID值。
  • TZ → 您可以在系统>日期和时间以及时区字段中查看您的本地配置。
  • APPDATA → 在 存储器 > 共享文件夹 中找到 appdata 共享文件夹的绝对路径。单击链接进行复制并将其粘贴到此处。
  • 根据您的系统配置自定义所有路径的值。如果需要定义其他不同的路径,也可以像定义其他变量一样在此处执行此操作。
  • 您可以根据需要定义其他变量,例如数据库密码或 compose 文件所需的任何值。

2.4 更换docker源

  • 在ssh中输入vi /etc/docker/daemon.json 在其中添加国内镜像源
  • 此处建议查询当前最新可用镜像源进行替换,避免镜像失效
{
  "registry-mirrors": ["https://docker.rainbond.cc"],
  "debug": true
}
  • 重启服务
    systemctl daemon-reload && systemctl restart docker
    或者是
    systemctl restart docker.service

3. 镜像拉取

  • 服务>Compose>文件 中点击添加
    这里以 linuxserver 制作的linuxserver/docker-qbittorrent镜像为例创建好 yaml 和 env 配置文件
---
services:
  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    environment:
      - PUID=1001
      - PGID=100
      - TZ=Asia/Shanghai
      - WEBUI_PORT=8080
      - TORRENTING_PORT=16881
    volumes:
      - /docker/docker_appdata/qbittorrent/config:/config
      - /srv/dev-disk-by-uuid-4652c247-f7e3-43ef-8fd6-f8761e4f4ff3/ST4000VX015:/downloads #optional
    ports:
      - 8080:8080
      - 16881:16881
      - 16881:16881/udp
    restart: unless-stopped
  • 将以上的各个参数依照你的系统进行修改,然后点击右下角保存
  • 在文件界面点击 箭头的上线即可