docker 安装数据集成平台 Apache SeaTunnel 服务

发布于:2025-07-09 ⋅ 阅读:(21) ⋅ 点赞:(0)

在这里插入图片描述

获取官方镜像
从 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
  1. 查看日志
    如果需要查看容器日志:
docker logs sea_tunnel_container
  1. 停止和清理容器
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。


网站公告

今日签到

点亮在社区的每一天
去签到