Skip to content

Docker 容器

Docker 卡片用于显示容器运行状态和运行时间,并为管理员提供基础控制操作。

启用 Docker 支持

容器部署时挂载 Docker Socket:

yaml
volumes:
  - /var/run/docker.sock:/var/run/docker.sock:ro

直接运行 JAR 时,Open Panel 会依次检测 /var/run/docker.sock/run/docker.sock、当前用户的 Docker Desktop Socket,也支持 DOCKER_HOST

首次启动检测到 Docker 后,会自动增加 Docker 分组。分组不会自动添加所有容器,需由管理员选择需要展示的容器。

添加卡片

  1. 在首页进入编辑状态并添加卡片。
  2. 卡片类型选择“Docker”。
  3. 从容器列表选择目标容器。
  4. 可使用容器名称自动同步标题,也可以自行修改标题和备注。
  5. 按需填写内网与公网 URL,使卡片可以打开容器对应的 Web 页面。

容器操作

卡片显示容器是否运行及运行时间,不展示 CPU 和内存数据。桌面端将鼠标移入卡片后,右下角显示启动、停止或重启按钮;触屏设备会保持操作入口可用。

容器操作只允许已登录管理员执行,匿名只读访客不能控制容器。

设置中的 Docker 页面会显示容器运行时间,也可以直接启动、停止和重启容器。每个容器都提供 Compose 查看入口,可根据当前 inspect 配置生成并复制 docker-compose.yaml,包含镜像、容器名、环境变量、端口、挂载、网络、标签和重启策略等信息。

“清理镜像”会删除所有未被现存容器引用的镜像,并反馈删除数量和释放空间。停止状态容器仍然引用的镜像不会被删除;更新时保留的旧 Hash 镜像如果已不再被容器引用,也会包含在清理范围内。

镜像更新

Docker 可用时,设置页会显示独立的 Docker 标签。项目启动后会自动拉取一次镜像元数据并比较容器当前镜像,之后每小时自动检测一次;自动任务只检查更新,不会停止、删除或重建容器。进入 Docker 设置页不会额外触发检测,也可以随时点击“重新检测”手动执行。

所有支持更新的容器都会显示“一键更新”按钮,无论当前是等待检测、已是最新还是发现更新,容器都只会在管理员主动点击后执行更新。更新任务按以下顺序执行:

  1. 拉取目标镜像,将新镜像以完整 SHA-256 Hash 作为临时 Tag 保存,并让原 Tag 继续指向旧镜像。
  2. 停止并删除旧容器,保留数据卷。
  3. 将旧镜像保存为内容 Hash Tag。
  4. 将新镜像恢复为原 Tag。
  5. 使用原容器配置和新镜像重新构建并启动容器。

镜像拉取期间可以中断任务,此时运行中的容器及原镜像 Tag 不受影响。进入停止和重建容器的关键阶段后,中断按钮会暂时禁用,避免留下不完整的容器状态;重建失败时会自动恢复旧镜像。Open Panel 自身容器、固定 Digest 镜像、Docker Swarm 容器和自动删除容器不支持从页面更新。

重建容器时始终使用原始仓库名与 Tag,并在容器标签中保留来源镜像名。如果旧版本更新出的容器已经显示为 sha256:...,Open Panel 会优先从暂存记录或镜像 RepoTags 恢复正常名称;再次手动更新后会将正确名称写回容器配置。

基于 GNU GPL v2.0 开源