跳到主要内容

管理和自定义容器

Disclaimer

This page is written to help users of all skill levels make the most out of Docker containers on Unraid OS. The tips and best practices come from the Unraid team, who ensure they are tailored to most users' needs. However, keep in mind that Docker is constantly evolving, so for the most up-to-date features, advanced configurations, or troubleshooting issues that go beyond what Unraid covers, it's always a good idea to check the official Docker documentation.

Before customizing a Docker container in Unraid, it’s helpful to understand the basic configuration options. Each container template provides a user-friendly interface for setting up networking, storage, and environment variables, allowing you to tailor the container's behavior to your needs without using complex command-line tools.

Unraid 支持多种 Docker 网络模式。您选择的网络类型决定了容器与其他设备和容器的通信方式:

  • 桥接 (默认): 容器位于一个内部的 Docker 网络中。只有您明确映射的端口才能从 Unraid 服务器或局域网访问。这是大多数应用程序最安全且最常用的选项。

  • 主机: 容器共享 Unraid 服务器的网络堆栈。它可以使用任何可用的端口,但必须确保端口不会与其他服务冲突。只有在应用程序需要直接网络访问时才使用此模式。

  • 无: 容器没有网络访问权限。可用于不需要任何网络连接的隔离工作负载。

  • 自定义(macvlan/ipvlan): 容器在局域网上分配自己的 IP 地址,使其显示为一个独立的设备。这适用于高级场景,但可能需要在网络环境中进行额外配置。

提示

容器模板中指定的默认网络类型推荐给大多数用户。

Wi-Fi 以及 Docker 网络限制

Docker 有一个限制,不能参与共享同一子网的两个网络。如果您在有线和无线连接之间切换,您将需要重启 Docker 并重新配置所有现有的容器以使用新接口。此网络配置更改需要容器重新配置。

创建和启动容器

配置完容器的网络、卷映射、端口映射和环境变量后,您就可以创建并启动Docker容器。本节将指导您完成创建过程,解释如何管理启动顺序和依赖关系,并提供高级启动自定义的提示。

创建一个容器

查看容器模板中的配置设置后:

  1. 单击 创建 开始下载并设置容器。
    • 在过程完成前请避免关闭浏览器窗口或导航到其他页面。
    • 新存储库的首次下载可能比后续下载耗时更长。
  2. 完成后,单击 完成 返回 Docker 页面,您可以管理或添加更多容器。

规划启动顺序

某些容器需要依赖其他容器才能正常运行。例如,一个应用程序可能需要一个先运行的数据库容器,或者一个服务可能需要一个VPN容器在之前激活。

Plan 你的启动
  • 识别提供核心服务的容器(如数据库、VPNs 或存储网关)。
  • 确保依赖容器仅在其前提条件启动并准备好后才启动。
  • 查看每个容器的文档以了解特定的启动要求。

高级容器启动

Unraid gives you flexible control over which containers start automatically and in what order. This is especially useful if you have containers that depend on others (such as a database or VPN service).

确保在 array 启动时自动启动容器:

  1. WebGUIDocker 选项卡上,
  2. 切换 自动启动 开关到 为每个您希望自动启动的容器。

自定义启动顺序和延迟

By default, Unraid starts all auto-start containers as quickly as possible, in the order they appear on the Docker tab. You can customize this order and add wait times between container startups:

  1. Docker 选项卡上,使用挂锁图标解锁容器列表。
  2. 通过拖放容器来重新排列其顺序。
  3. 使用顶部右侧的切换按钮切换到 高级视图
  4. AutoStart 列中,为任何需要额外时间的容器在 wait 字段输入等待时间(以秒为单位),以便下一个容器启动。
    • 使用试错为您的设置确定最佳的等待时间。
提示

设置正确的顺序和等待时间对于依赖其他服务的容器尤其重要(例如,在启动使用它的应用之前启动数据库,或在依赖应用之前启动 VPN)。

测试启动顺序

虽然 Unraid 没有专门的“测试启动序列”功能,但您可以模拟并验证您的启动顺序:

  1. Docker 选项卡上停止所有容器。
  2. 以您计划的顺序手动启动每个容器,使用 启动 按钮。
  3. 监测容器日志和应用程序行为以确保满足依赖性并按预期初始化服务。
  4. 根据需要调整启动顺序或等待时间。
important

在更改容器依赖关系或添加新服务后测试启动顺序,尤其是在设置依赖于特定启动时序时。


控制您的容器

一旦您创建并启动了Docker容器,就可以通过WebGUI轻松管理它。本指南将引导您使用上下文菜单,了解容器健康指标,以及访问容器内的卷映射。

要访问容器的上下文菜单,请进入DockerDashboard选项卡,然后点击您想管理的容器图标。此菜单提供了对常见操作的简单访问:

Docker Guide - Controlling

可选描述
WebUI在新浏览器选项卡中打开容器的 Web 界面(如果可用)。
控制台打开一个命令行界面以直接与容器交互。
停止停止正在运行的容器。
暂停暂停容器,暂时停止所有进程。
重启重启容器,应用任何配置更改。
日志显示容器的日志输出以进行故障排查。
编辑更改容器设置,例如端口或卷映射。保存后更改立即生效。
移除删除容器。您可以选择只移除容器或同时删除其镜像。
项目页面打开容器的项目页面以获取文档和支持。
支持提供对容器的支持资源和帮助的访问。
更多信息显示有关容器及其配置的附加信息。

健康指示器

您将在每个容器的图标旁找到一个彩色健康指示器:

  • 🟢 健康: 表示容器正在运行并按预期响应。
  • 🟡 不健康:容器正在运行,但未通过健康检查。查看日志或容器设置以获取更多信息。
  • 无健康检查:表示未为容器配置健康检查。这对许多应用程序来说是常见的,并不一定是个问题。
备注

健康检查由容器作者定义,可能不适用于所有镜像。


容器内的卷映射

通过 Web 界面配置应用程序时,引用在配置期间设置的容器路径 -

例如,如果您将主机上的 /mnt/user/media 映射到容器中的 /unraid_media,您应该在应用程序的设置中使用 /unraid_media

示例场景

Here are some examples showing common path mapping configurations that users frequently need when setting up Docker containers. They demonstrate how to translate between Unraid's host file system paths and the container's internal paths, helping you configure applications correctly.

  • 媒体服务器: 主机路径:/mnt/user/media
    容器路径:/unraid_media

    在应用中,将您的媒体库位置设置为/unraid_media

  • 应用数据存储: 主机路径:/mnt/user/appdata/myapp
    容器路径:/config

    在应用中,使用/config进行配置存储。

  • Multiple user shares: Host path: /mnt/user/media → Container path: /media
    Host path: /mnt/user/data → Container path: /data

    根据需要在应用程序中引用/media/data

Best 实践

始终使用允许容器正常工作的最严格访问模式(只读或读/写)。


调度启动和停止

Unraid does not natively support scheduled start or stop actions for Docker containers, but you can easily automate this process using the User Scripts plugin. This powerful tool allows you to run custom scripts on a schedule, enabling automatic control of your containers.

用户脚本插件

用户脚本插件允许您直接从WebGUI创建、管理和调度自定义shell脚本。您可以将其用于各种自动化任务,如启动或停止容器、备份数据或执行维护例程。

  • 如果尚未安装插件,请从应用选项卡安装。
  • 通过 设置 → 用户脚本 访问它来创建和管理您的脚本。

要了解更多关于插件的信息,请查看插件

计划容器操作

要按计划自动启动或停止您的容器:

  1. 应用程序 标签安装 用户脚本插件
  2. 导航至 设置→用户脚本
  3. 为每个唯一的调度创建一个新脚本。如果多个容器共享同一调度,您可以在一个脚本中包含这些指令。
  4. 使用下拉菜单设置计划,或使用自定义 cron 表达式以获取更高级的定时选项。
  5. 点击 应用 保存并激活您的脚本。
提示

Cron表达式使得调度远远超出内置选项的灵活性。例如,0 3 * * 1将在每周一凌晨3点运行您的脚本。

命令示例

要启动一个容器,使用命令:

docker start "container-name"

"container-name" 替换为在 Docker 标签中显示的实际名称。

提示

您可以在 Docker 标签中或通过查看容器的配置屏幕中的 docker run 命令找到容器名称。