获取官方镜像
从 Docker Hub 上拉取最新的 Apache SeaTunnel 镜像:
docker pull apache/seatunnel:latest
创建目录
sudo mkdir -p /data/{conf,logs} # 需要 root 权限创建 /data 目录
sudo chown -R $USER:$USER /data # 将目录权限给当前用户(可选)
docker run -d \
--name sea_tunnel_container \
-p 9090:8080 \
-v /data/conf:/opt/seatunnel/conf \
-v /data/logs:/opt/seatunnel/logs \
-e SEATUNNEL_HOME="/opt/seatunnel" \
apache/seatunnel:latest
docker ps -a | grep sea_tunnel_container
- 查看日志
如果需要查看容器日志:
docker logs sea_tunnel_container
- 停止和清理容器
docker stop sea_tunnel_container
docker rm sea_tunnel_container
注意事项
权限问题:确保 SeaTunnel 容器有权限写入 /data/logs 目录。如果遇到权限错误,可以:
sudo chmod -R 777 /data/logs # 开放所有权限(测试环境可用)
或更安全的方式:
sudo chown -R 1000:1000 /data/logs # 通常容器内用户 UID 是 1000
配置准备:SeaTunnel 需要特定的配置文件(如 config.yaml 或 application.conf),确保提前放入 /data/conf 目录。
数据持久化:所有日志和配置都保存在宿主机的 /data 目录下,即使容器删除也不会丢失。
端口冲突:如果 9090 端口已被占用,可以更改为其他端口,如 -p 9091:8080。
这样配置后,SeaTunnel 的所有日志和配置都会持久化在宿主机的 /data 目录下。
docker-compose安装
对于单节点部署可以采用如下形式的 docker-compose.yml
version: '3.8'
services:
seatunnel:
image: apache/seatunnel:latest
container_name: sea_tunnel_container
hostname: seatunnel-server
ports:
- "9090:8080" # Web UI 访问端口
volumes:
- /data/seatunnel/conf:/opt/seatunnel/conf # 配置文件目录
- /data/seatunnel/logs:/opt/seatunnel/logs # 日志目录
- /etc/localtime:/etc/localtime:ro # 同步宿主机时区
environment:
SEATUNNEL_HOME: "/opt/seatunnel"
TZ: Asia/Shanghai # 设置容器时区
restart: unless-stopped # 自动重启策略
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080"] # 健康检查
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
cpus: '2' # 限制 CPU 使用
memory: 2G # 限制内存使用
reservations:
memory: 1G # 内存保留值
networks:
- seatunnel-net # 使用自定义网络(可选)
networks:
seatunnel-net:
driver: bridge
配置目录:/data/seatunnel/conf → 映射到容器内的 /opt/seatunnel/conf
日志目录:/data/seatunnel/logs → 映射到容器内的 /opt/seatunnel/logs
确保宿主机目录存在(需手动创建):
sudo mkdir -p /data/seatunnel/{conf,logs} # 创建目录结构
sudo chown -R $USER:$USER /data/seatunnel # 赋予当前用户权限(避免权限问题)
如果 Docker 默认用户(UID 1000)需要访问:
sudo chmod -R 775 /data/seatunnel # 开放读写权限
或更安全的做法:
sudo chown -R 1000:1000 /data/seatunnel # 让容器用户(通常UID 1000)拥有权限
使用方式
启动 SeaTunnel:
docker-compose up -d
检查容器状态:
docker-compose ps
docker-compose logs -f # 实时查看日志
访问 Web UI:
浏览器访问 http://<宿主机IP>:9090
优点
✅ 数据持久化:所有配置和日志存储在 /data/seatunnel,即使容器删除也不会丢失。
✅ 统一管理:所有数据集中存放在 /data 目录,便于备份和维护。
✅ 权限可控:通过 chown/chmod 确保容器能正确读写数据。
如果 SeaTunnel 还需要其他数据卷(如插件目录),可以按相同方式挂载到 /data/seatunnel/plugins。