# DataMover Docker 部署指南
# 前置条件
若您无Docker环境,可寻求AI指导安装,或参考安装教程:https://www.cnblogs.com/twoshuai/p/19205895
| 组件 | 版本要求 |
|---|---|
| Docker Engine | 20.10+ |
| Docker Compose | 2.x+(即 docker compose 命令) |
无需额外配置镜像加速或代理。部署脚本会从阿里云 ACR(国内镜像仓库)拉取所有依赖镜像,拉取后自动重命名标签为本地名称,并运行。
# 一键安装
在服务器上执行以下命令,自动完成下载、解压、部署:
macOS / Linux
curl -fsSL https://down.datamover.cn/install.sh | bash
Windows PowerShell:
Set-ExecutionPolicy Bypass -Scope Process -Force; irm https://down.datamover.cn/install.ps1 | iex
macOS / Linux / Windows (WSL) 均支持。
脚本会自动检测环境、下载压缩包并启动所有服务。
首次启动需要 3-5 分钟完成 MySQL 初始化 + Flyway 建表,请耐心等待。 默认管理员账号:
admin,密码:admin123。
# 手动部署
如果希望自行下载压缩包并检查内容,请按以下步骤操作。
# 第 1 步:下载
从官网下载 datamover-docker.zip 到服务器。
https://down.datamover.cn/datamover-docker.zip
# 第 2 步:解压
解压到任意目录:
datamover-docker/
├── docker-compose.yml
├── deploy.sh # Linux 部署脚本
├── deploy.ps1 # Windows 部署脚本
├── .env
├── 使用说明.md # 使用说明
└── mysql/
└── init/
└── 01-grant-privileges.sql
# 第 3 步:(可选)修改配置
编辑 .env 文件,按需修改数据库密码:
DM_DB_PASSWORD=你的密码
不修改则使用默认密码
Dm@2024#Secure!。
# 第 4 步:部署启动
cd datamover-docker
# Linux
chmod +x deploy.sh
./deploy.sh
# Windows PowerShell
.\deploy.ps1
部署脚本会自动完成:
- 检测 Docker 和 Docker Compose 环境
- 从镜像仓库拉取 Manager 和 Worker 镜像
- 启动所有服务
首次启动时 MySQL 需要初始化数据目录(约 30-60 秒),Manager 和 Worker 会自动等待 MySQL 就绪后再启动。
查看启动日志:
docker compose logs -f
# 第 5 步:访问服务
| 服务 | 地址 |
|---|---|
| Manager Web 界面 | http://localhost:8000 |
| Worker 接口 | http://localhost:8011 |
默认管理员账号:admin 默认管理员密码:admin123
# 离线部署(内网环境)
如果部署服务器无法访问公网,可通过一台公网机器中转镜像。
# 第 1 步:在公网机器上准备
# 1. 拉取镜像(需先配置 ACR 访问权限)
./deploy.sh --pull
# 2. 导出镜像为 tar 文件
./save-images.sh
# 3. 将 datamover-docker.zip 和所有 .tar 文件一起拷贝到内网机器
# 第 2 步:在内网机器上部署
# 1. 解压
unzip datamover-docker.zip
cd datamover-docker
# 2. 导入镜像
./load-images.sh /path/to/tar/files
# 3. 启动服务(跳过镜像拉取)
./deploy.sh --no-pull
--no-pull会执行环境检测和端口检测,但跳过从 ACR 拉取镜像的步骤。
# 部署脚本命令参考
# 完整部署(自动检测端口冲突,自动拉取镜像并启动)
./deploy.sh
# 环境检测 / 镜像操作
./deploy.sh --check # 仅检测 Docker 和 Compose 环境
./deploy.sh --pull # 仅拉取镜像并重新标记
# 启停控制(可指定单个服务)
./deploy.sh --stop # 停止所有服务
./deploy.sh --stop worker # 仅停止 worker
./deploy.sh --stop manager # 仅停止 manager
./deploy.sh --restart # 重启所有服务
./deploy.sh --restart worker # 仅重启 worker
./deploy.sh --restart manager # 仅重启 manager
./deploy.sh --down # 停止并删除容器
./deploy.sh --down-v # 停止并删除容器和数据卷(谨慎!)
Windows PowerShell:
# 完整部署(自动检测端口冲突,自动拉取镜像并启动)
.\deploy.ps1
# 环境检测 / 镜像操作
.\deploy.ps1 -Action Check # 仅检测环境
.\deploy.ps1 -Action Pull # 仅拉取镜像
# 启停控制(可指定单个服务)
.\deploy.ps1 -Action Stop # 停止所有服务
.\deploy.ps1 -Action Stop -Service worker # 仅停止 worker
.\deploy.ps1 -Action Restart # 重启所有服务
.\deploy.ps1 -Action Restart -Service manager # 仅重启 manager
.\deploy.ps1 -Action Down # 停止并删除容器
.\deploy.ps1 -Action DownV # 停止并删除容器和数据卷
# 配置参考
所有配置通过环境变量注入,可在 .env 文件或 docker-compose.yml 中修改:
| 变量 | 默认值 | 说明 |
|---|---|---|
TZ | Asia/Shanghai | 容器时区,默认为北京时间 |
DM_DB_PASSWORD | Dm@2024#Secure! | MySQL root / datamover 用户密码 |
DM_DB_HOST | mysql:3306 | 数据库地址(一般无需修改) |
DM_DB_NAME | datamover | 数据库名 |
DM_DB_USER | datamover | 数据库连接用户 |
DM_LOCAL_IP | 自动检测 | 本机注册 IP(多网卡环境需手动指定) |
DM_WEB_IP | manager | Manager 地址(Worker 注册用) |
DM_WEB_PORT | 8000 | Manager 端口 |
DM_NODE_ID | 默认 UUID | Worker 节点 ID(多 Worker 时需各自唯一) |
JAVA_OPTS | 空 | 额外的 JVM 参数(如 -Xms512m -Xmx2g) |
# JVM 内存配置
在 .env 或 docker-compose.yml 中设置:
# docker-compose.yml
worker:
environment:
JAVA_OPTS: "-Xms512m -Xmx2g"
# .env
JAVA_OPTS=-Xms512m -Xmx2g
# 常见问题
# 1. 端口冲突
deploy.sh 会自动检测 3306 / 8000 / 8011 是否被占用,若被占用则自动更换为其他可用端口,并在启动完成后告知实际端口地址。
如需手动指定端口,修改 docker-compose.yml 中的端口映射:
ports:
- "3307:3306" # 主机 3307 → 容器 3306
- "8001:8000" # 主机 8001 → 容器 8000
- "8012:8011" # 主机 8012 → 容器 8011
# 2. 部署脚本拉取镜像失败
确认网络可访问阿里云 ACR。如果在内网环境,请联系部署方获取离线镜像包。
# 3. 如何多开 Worker
复制 Worker 服务配置,修改容器名和节点 ID,添加到 docker-compose.yml 的 services 下:
worker-2:
image: datamover-worker:latest
container_name: datamover-worker-2
environment:
DM_LOCAL_IP: worker-2
DM_NODE_ID: <新的唯一UUID>
DM_DB_PASSWORD: ${DM_DB_PASSWORD}
# 4. 数据持久化
MySQL 数据存储在 Docker 命名卷 datamover_mysql-data 中。docker compose down 不会丢失数据。如需彻底清理:
docker compose down -v
# 5. 如何升级
从官网下载最新压缩包,解压后执行:
./deploy.sh
脚本会自动拉取最新镜像,重新部署。
# 架构
┌───────────────────┐ 3306 ┌──────────────────┐
│ MySQL 8.0 │◄─────────────│ Manager 容器 │
│ (datamover 库) │ │ 端口 8000 │
│ │─────────────►│ Web 管理界面 │
└───────────────────┘ JDBC └────────┬─────────┘
│ HTTP
┌────────▼─────────┐
│ Worker 容器 │
│ 端口 8011 │
│ 执行引擎 │
└──────────────────┘
← 数据源链路 全新安装(Linux) →