Dockman:适用于家庭自托管的Compose管理器

简介

什么是 Dockman ?

Dockman 是一个旨在简化 Docker Compose 文件管理的工具,特别适用于家庭实验室(homelab)环境。它提供了一种直观的方法来编辑、跟踪和备份 Docker Compose 配置。

主要特点

  1. 简化管理:提供一个清晰的界面,专注于 Docker Compose 文件的管理,避免复杂的功能干扰。
  2. 多主机支持:允许从单一实例管理多个 Docker 主机,轻松切换和维护不同服务器上的容器配置。
  3. Git 版本控制:利用 Git 分支进行配置管理,每个主机有独立的分支,便于修改和回滚。
  4. 无代理架构:通过 SSH 连接与远程 Docker 主机通信,无需在远程服务器上安装额外软件。
  5. 环境变量配置:通过环境变量自定义 Dockman 的行为,灵活满足用户需求。
  6. 安全性考虑:提供安全最佳实践建议,确保 Docker Daemon 访问的安全性。

应用场景

  • 家庭实验室:适合个人用户和开发者管理家庭实验室中的 Docker 容器。
  • 开发环境:用于开发和测试环境,便于快速部署和管理服务。
  • 教育与学习:帮助学习 Docker 和容器化技术的用户,通过简单的界面进行实践。

Dockman 是为那些喜欢直接编辑配置文件而非 GUI 的用户设计的,旨在提供简洁而高效的工作流程。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 v1.0.2

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 dockman 和 子目录
mkdir -p /volume1/docker/dockman/stacks

# 进入 dockman 目录
cd /volume1/docker/dockman

# 运行容器
docker run -d \
--restart unless-stopped \
--name dockman \
-p 8866:8866 \
-v $(pwd)/stacks:/home/zaphodb/stacks \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKMAN_COMPOSE_ROOT=/home/zaphodb/stacks \
ghcr.io/ra341/dockman:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3'

services:
dockman:
image: ghcr.io/ra341/dockman:latest
container_name: dockman
restart: unless-stopped
ports:
- 8866:8866
volumes:
- ./stacks:/home/zaphodb/stacks
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DOCKMAN_COMPOSE_ROOT=/home/zaphodb/stacks

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 dockman 和 子目录
mkdir -p /volume1/docker/dockman/stacks

# 进入 dockman 目录
cd /volume1/docker/dockman

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8866 就能看到主界面

ADD 添加一个新的 Compose 文件

MTranServer 为例, 取名为 mtranserver.docker-compose.yml,名字是为了方便区别和记忆

下面是个 compose 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'

services:
mtranserver:
image: xxnuo/mtranserver-amd64v1:latest
container_name: mtranserver
restart: unless-stopped
ports:
- "8989:8989"
volumes:
- /volume1/docker/dockman/stacks/models:/app/models
environment:
- CORE_API_TOKEN=123456

  1. 需要先创建 models 目录并下载模型文件。具体请参考: 基于Firefox模型的私有翻译服务MTranServer
  2. portainer 一样,这里的本地目录要使用绝对路径,而不是相对路径

COMMIT 提交之后,就可以 DEPLOY –> START

目前软件尚未完成,像左下角的 SettingsLogout 还没有实现,但核心功能已经可以使用了

Dockman 的使用很简单,如果用过 portainer,分分钟就可以上手,实在不行可以看看官方的视频

参考文档

RA341/dockman: Yet another compose manager for homelabs
地址:https://github.com/RA341/dockman