开源数据库备份神器 Databasus|Docker容器化搭建实操
一、Databasus介绍
1.1 Databasus目简介
Databasus 是一款免费、开源、可自托管的现代化数据库备份管理工具。它通过一个精致且功能强大的 Web 界面,将分散的数据库备份工作统一起来,支持 PostgreSQL、MySQL、MariaDB 和 MongoDB,旨在终结混乱的手工脚本时代,让备份真正变得“可管、可控、可协作”。
Databasus 是一款免费、开源、可自托管的现代化数据库备份管理工具。它通过一个精致且功能强大的 Web 界面,将分散的数据库备份工作统一起来,支持 PostgreSQL、MySQL、MariaDB 和 MongoDB,旨在终结混乱的手工脚本时代,让备份真正变得“可管、可控、可协作”。
1.2 Databasus主要特点
- 多数据库统一管理:支持 PostgreSQL 12-18、MySQL 5.7-9、MariaDB 10-12 及 MongoDB 4.2+ 至 8 等主流版本,实现单一平台集中管控。
- 灵活的调度与智能压缩:支持按小时、天、周、月或自定义 Cron 表达式进行精确调度,并采用智能压缩技术,可节省 4-8 倍存储空间。
- 真实恢复验证:通过实际启动数据库容器执行恢复操作,并生成包含每张表行数的详细报告,确保备份文件不仅存在,而且真实可用。
- 多样化的保留策略:提供按时间、按数量以及 GFS(祖父-父亲-儿子)分层保留三种策略,满足从简单清理到长期合规归档的各类需求。
- 丰富的存储后端与安全加密:支持本地、S3、Google Drive、SFTP 等数十种存储目的地,所有备份在离开前均经过 AES-256-GCM 加密,杜绝厂商锁定。
- 实时多渠道通知:支持邮件、Telegram、Slack、Discord 及 Webhook 等多种渠道,在备份成功或失败时第一时间通知团队。
- 企业级团队协作:提供工作空间隔离、基于角色的访问控制(RBAC)和完整审计日志,满足多项目、多团队的协作与合规要求。
- 多样的连接与备份类型:支持远程直连和轻量级 Agent 两种连接方式,并提供逻辑、物理和增量(支持 PITR 时间点恢复)三种备份类型。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | Databasus | —— |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Databasus数据库备份工具。
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Databasus数据库备份工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-05-13 20:00:35 CST; 1 week 1 day ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 755791 (dockerd)
Tasks: 154
Memory: 1.3G (peak: 2.5G)
CPU: 17min 28.568s
CGroup: /system.slice/docker.service
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-05-13 20:00:35 CST; 1 week 1 day ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 755791 (dockerd)
Tasks: 154
Memory: 1.3G (peak: 2.5G)
CPU: 17min 28.568s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
四、拉取Databasus镜像
下载Databasus镜像,执行以下命令:
root@jeven:~# docker pull databasus/databasus:v3.42.0
v3.42.0: Pulling from databasus/databasus
068fedd6b0f1: Pull complete
b82951ac38bb: Pull complete
355847d77b88: Pull complete
24b019d43c64: Pull complete
b9c684d21a23: Pull complete
4f4fb700ef54: Pull complete
079ebae73ecf: Pull complete
77222f6e2994: Pull complete
960f9198fd81: Pull complete
b38d9bf88a30: Pull complete
6dd879aea289: Pull complete
65e2dec335af: Pull complete
33a6da0e4493: Pull complete
fbd387e747d5: Pull complete
90fa4f99a3ad: Pull complete
cb000e46e837: Pull complete
Digest: sha256:f748c20cecb3cf3162d80ebfddd4f192b5e4ee640d600c9daf726310ac49e51c
Status: Downloaded newer image for databasus/databasus:v3.42.0
docker.io/databasus/databasus:v3.42.0
下载Databasus镜像,执行以下命令:
root@jeven:~# docker pull databasus/databasus:v3.42.0
v3.42.0: Pulling from databasus/databasus
068fedd6b0f1: Pull complete
b82951ac38bb: Pull complete
355847d77b88: Pull complete
24b019d43c64: Pull complete
b9c684d21a23: Pull complete
4f4fb700ef54: Pull complete
079ebae73ecf: Pull complete
77222f6e2994: Pull complete
960f9198fd81: Pull complete
b38d9bf88a30: Pull complete
6dd879aea289: Pull complete
65e2dec335af: Pull complete
33a6da0e4493: Pull complete
fbd387e747d5: Pull complete
90fa4f99a3ad: Pull complete
cb000e46e837: Pull complete
Digest: sha256:f748c20cecb3cf3162d80ebfddd4f192b5e4ee640d600c9daf726310ac49e51c
Status: Downloaded newer image for databasus/databasus:v3.42.0
docker.io/databasus/databasus:v3.42.0

五、部署Databasus服务
5.1 创建部署目录
创建部署目录
mkdir -p /data/databasus/data && cd /data/databasus
在测试环境中,为了方便操作,我们直接为挂载目录设置了完全权限。但在生产环境中,请务必根据实际安全需求,配置更精细、严格的权限控制方案。
chmod -R 777 /data/databasus
创建部署目录
mkdir -p /data/databasus/data && cd /data/databasus
在测试环境中,为了方便操作,我们直接为挂载目录设置了完全权限。但在生产环境中,请务必根据实际安全需求,配置更精细、严格的权限控制方案。
chmod -R 777 /data/databasus
5.2 docker-cli方式部署(可选)
如果想要使用docker-cli方式部署,可参考以下命令部署。(可选)
docker run -d \
--name databasus \
--restart=unless-stopped \
-p 6500:4005 \
-v $(pwd)/data:/databasus-data \
databasus/databasus:v3.42.0
如果想要使用docker-cli方式部署,可参考以下命令部署。(可选)
docker run -d \
--name databasus \
--restart=unless-stopped \
-p 6500:4005 \
-v $(pwd)/data:/databasus-data \
databasus/databasus:v3.42.0
5.3 创建Databasus容器
本次实践我们采用 Docker Compose 方式进行部署,这也是我推荐的方式。首先我们需要创建并编辑 docker-compose.yaml 文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。
vim docker-compose.yaml
version: "3"
services:
databasus:
image: databasus/databasus:v3.42.0
container_name: databasus
restart: always
ports:
- "6500:4005"
volumes:
- /data/databasus/data:/databasus-data
执行以下命令,创建Databasus容器。
docker compose up -d
本次实践我们采用 Docker Compose 方式进行部署,这也是我推荐的方式。首先我们需要创建并编辑 docker-compose.yaml 文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。
vim docker-compose.yaml
version: "3"
services:
databasus:
image: databasus/databasus:v3.42.0
container_name: databasus
restart: always
ports:
- "6500:4005"
volumes:
- /data/databasus/data:/databasus-data
执行以下命令,创建Databasus容器。
docker compose up -d

5.4 查看Databasus容器状态
检查Databasus容器运行状态,确保Databasus容器正常启动。
root@jeven:/data/databasus# docker compose ps
WARN[0000] /data/databasus/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
databasus databasus/databasus:v3.42.0 "/app/start.sh" databasus 51 seconds ago Up 51 seconds 0.0.0.0:6500->4005/tcp, [::]:6500->4005/tcp
检查Databasus容器运行状态,确保Databasus容器正常启动。
root@jeven:/data/databasus# docker compose ps
WARN[0000] /data/databasus/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
databasus databasus/databasus:v3.42.0 "/app/start.sh" databasus 51 seconds ago Up 51 seconds 0.0.0.0:6500->4005/tcp, [::]:6500->4005/tcp

5.5 检查Databasus容器日志
检查容器运行日志,确保Databasus服务正常运行。
docker compose logs
检查容器运行日志,确保Databasus服务正常运行。
docker compose logs


六、访问Databasus服务
6.1 访问Databasus初始页
浏览器地址: http://<个人的服务器IP>:6500,访问Databasus初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。
浏览器地址: http://<个人的服务器IP>:6500,访问Databasus初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

6.2 登录Databasus
默认账号为admin,密码我们自行设置即可。
默认账号为admin,密码我们自行设置即可。


七、数据库备份
7.1 创建工作空间
点击【Create workspace】创建工作空间,名称自行填写。
点击【Create workspace】创建工作空间,名称自行填写。

7.2 添加备份数据库
我们点击“Add database”,填写数据库名称和数据库类型。这里备份的数据库为测试的mariadb数据库,如下所示:
我们点击“Add database”,填写数据库名称和数据库类型。这里备份的数据库为测试的mariadb数据库,如下所示:

填写备份数据库的相关信息,测试连接成功后,点击下一步继续。

创建只读用户,为了备份安全了创建只读用户。

设置备份计划:根据需要填写,注意存储选择可选择本地存储或其余方式。

完成备份数据库的添加,如果需要配置通知器,可自行创建与配置。


八、总结
本次实践在本地 Docker 环境中成功部署了 Databasus 数据库备份工具,从拉取镜像、创建容器到配置端口映射,整个过程流畅高效。通过其直观的 Web 界面,我们快速完成了工作空间创建与数据库添加,充分验证了该工具在统一管理多类型数据库备份任务上的便捷性。Databasus 集成了灵活的调度策略、多样化的存储后端以及强大的团队协作功能,为中小团队提供了一套开箱即用、安全可靠的数据保护方案。这套部署流程可快速复用于开发测试及生产环境,有效降低数据库备份管理的运维成本。
本次实践在本地 Docker 环境中成功部署了 Databasus 数据库备份工具,从拉取镜像、创建容器到配置端口映射,整个过程流畅高效。通过其直观的 Web 界面,我们快速完成了工作空间创建与数据库添加,充分验证了该工具在统一管理多类型数据库备份任务上的便捷性。Databasus 集成了灵活的调度策略、多样化的存储后端以及强大的团队协作功能,为中小团队提供了一套开箱即用、安全可靠的数据保护方案。这套部署流程可快速复用于开发测试及生产环境,有效降低数据库备份管理的运维成本。




