Docker 容器
Docker 卡片用于显示容器运行状态和运行时间,并为管理员提供基础控制操作。
启用 Docker 支持
容器部署时挂载 Docker Socket:
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 分组。分组不会自动添加所有容器,需由管理员选择需要展示的容器。
添加卡片
- 在首页进入编辑状态并添加卡片。
- 卡片类型选择“Docker”。
- 从容器列表选择目标容器。
- 可使用容器名称自动同步标题,也可以自行修改标题和备注。
- 按需填写内网与公网 URL,使卡片可以打开容器对应的 Web 页面。
容器操作
卡片显示容器是否运行及运行时间,不展示 CPU 和内存数据。桌面端将鼠标移入卡片后,右下角显示启动、停止或重启按钮;触屏设备会保持操作入口可用。
容器操作只允许已登录管理员执行,匿名只读访客不能控制容器。
设置中的 Docker 页面会显示容器运行时间,也可以直接启动、停止和重启容器。每个容器都提供 Compose 查看入口,可根据当前 inspect 配置生成并复制 docker-compose.yaml,包含镜像、容器名、环境变量、端口、挂载、网络、标签和重启策略等信息。
“清理镜像”会删除所有未被现存容器引用的镜像,并反馈删除数量和释放空间。停止状态容器仍然引用的镜像不会被删除;更新时保留的旧 Hash 镜像如果已不再被容器引用,也会包含在清理范围内。
镜像更新
Docker 可用时,设置页会显示独立的 Docker 标签。项目启动后会自动拉取一次镜像元数据并比较容器当前镜像,之后每小时自动检测一次;自动任务只检查更新,不会停止、删除或重建容器。进入 Docker 设置页不会额外触发检测,也可以随时点击“重新检测”手动执行。
所有支持更新的容器都会显示“一键更新”按钮,无论当前是等待检测、已是最新还是发现更新,容器都只会在管理员主动点击后执行更新。更新任务按以下顺序执行:
- 拉取目标镜像,将新镜像以完整 SHA-256 Hash 作为临时 Tag 保存,并让原 Tag 继续指向旧镜像。
- 停止并删除旧容器,保留数据卷。
- 将旧镜像保存为内容 Hash Tag。
- 将新镜像恢复为原 Tag。
- 使用原容器配置和新镜像重新构建并启动容器。
镜像拉取期间可以中断任务,此时运行中的容器及原镜像 Tag 不受影响。进入停止和重建容器的关键阶段后,中断按钮会暂时禁用,避免留下不完整的容器状态;重建失败时会自动恢复旧镜像。Open Panel 自身容器、固定 Digest 镜像、Docker Swarm 容器和自动删除容器不支持从页面更新。
重建容器时始终使用原始仓库名与 Tag,并在容器标签中保留来源镜像名。如果旧版本更新出的容器已经显示为 sha256:...,Open Panel 会优先从暂存记录或镜像 RepoTags 恢复正常名称;再次手动更新后会将正确名称写回容器配置。