OpenWrt Docker 进阶教程:手动分区、扩容与避坑指南

在 OpenWrt 上玩 Docker,最忌讳的就是“一键安装”。默认情况下,Docker 会把所有的镜像和容器数据堆在系统的 /overlay 分区,如果你的系统盘较小,很快就会报错。

核心要点概括

  • 先分区后安装:手动创建独立挂载点,防止 Docker 挤占系统空间。
  • 关键前置操作:禁用系统自动挂载,确保磁盘路径受控。
  • 文件系统选择:推荐使用 Btrfs 格式以获得更好的兼容性。

第一步:手动准备 Docker “专属领地”

在正式安装 Docker 插件之前,我们需要先在磁盘上开辟出一块空间。

  1. 安装磁盘管理工具:在“系统” -> “软件包”中,搜索并安装 luci-app-diskman。安装后刷新页面,在“状态”或“系统”菜单下找到“磁盘管理”。
  2. 创建新分区
    • 在剩余空间较大的磁盘上点击“修改”。
    • 新建一个分区,大小根据需求设定(建议至少 10GB 以上,视频演示为 +10G)。
  3. 格式化(关键点)
    • Btrfs (强烈推荐):如果你计划运行 AdGuard Home 等插件,Btrfs 可以避免镜像拉取时的兼容性报错。
    • Ext4:普通用户也可以选择。
    • 点击“格式化”并确认。

第二步:配置挂载点与关键细节

我们需要告诉系统,这块新空间是专门给 Docker 用的。请注意这里有一个非常关键的步骤。

  1. 禁用自动挂载:进入“系统” -> “挂载点”,向下滚动找到“全局设置”。⚠️ 重要细节:取消勾选“自动挂载未配置的磁盘分区”以及“自动挂载已配置的分区”。这一步是为了防止系统在启动时乱序挂载,确保我们的手动配置生效。点击“保存并应用”。
  2. 手动添加挂载点
    • 点击“添加”,在“设备”中选择你刚刚创建的那个分区(如 sdb3sda3)。
    • 挂载点设置:如果下拉菜单有“作为 Docker 根目录使用”的选项,直接选择;如果没有,请选择“自定义”,手动输入:/opt/docker(这是大多数固件默认的 Docker 路径)。
  3. 点击“保存并应用”。此时,/opt/docker 路径就已经拥有了你分配的十几 GB 空间。

第三步:安装 Docker 插件

  1. 环境检查
    • 确保网络环境正常(建议确保路由器具备流畅拉取海外软件包的能力,否则会失败)。
    • 确保系统可用空间(Root)至少还有 300MB 以上,因为依赖包体积较大。
  2. 执行安装:在软件包中搜索 luci-app-dockerman,点击安装。它会自动下载 Docker 核心组件及界面程序。
  3. 忽略报错与耐心等待:安装过程中如果出现红色的日志报错,通常可以忽略操作建议:安装完成后,不要立即点击菜单。静候 3-5 分钟,让后台程序彻底完成初始化,然后重启路由器

第四步:Docker 的二次扩容与迁移

如果你发现现在的 Docker 空间不够用了,想换一块更大的硬盘,流程如下:

  1. 备份数据:将原 Docker 挂载目录(如 /opt/docker)下的文件通过 SSH 临时拷贝到其他存储介质。
  2. 新分区挂载:重复“第一步”和“第二步”,准备一块更大的新分区。
  3. 替换路径:在“挂载点”中将原路径指向新的分区。
  4. 还原数据:将备份的文件粘贴回新分区目录下,重启即可无损复活。

总结

通过手动禁用自动挂载并指定 /opt/docker 路径,你已经搭建了一个极具扩展性的 Docker 环境。这种方案最大的好处是:即便你日后重写了系统固件,只要数据盘不格式化,只需简单地重新挂载,你的所有容器和镜像都会毫发无损地找回来。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注