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

获取官方镜像

从 Docker Hub 上拉取最新的 Apache SeaTunnel 镜像:

bash 复制代码
docker pull apache/seatunnel:latest

创建目录

bash 复制代码
sudo mkdir -p /data/{conf,logs}  # 需要 root 权限创建 /data 目录
sudo chown -R $USER:$USER /data  # 将目录权限给当前用户(可选)
bash 复制代码
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
bash 复制代码
docker ps -a | grep sea_tunnel_container
  1. 查看日志
    如果需要查看容器日志:
bash 复制代码
docker logs sea_tunnel_container
  1. 停止和清理容器
bash 复制代码
docker stop sea_tunnel_container
docker rm sea_tunnel_container

注意事项

权限问题:确保 SeaTunnel 容器有权限写入 /data/logs 目录。如果遇到权限错误,可以:

bash 复制代码
sudo chmod -R 777 /data/logs  # 开放所有权限(测试环境可用)

或更安全的方式:

bash 复制代码
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

bash 复制代码
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
bash 复制代码
配置目录:/data/seatunnel/conf → 映射到容器内的 /opt/seatunnel/conf
日志目录:/data/seatunnel/logs → 映射到容器内的 /opt/seatunnel/logs

确保宿主机目录存在(需手动创建):

bash 复制代码
sudo mkdir -p /data/seatunnel/{conf,logs}  # 创建目录结构
sudo chown -R $USER:$USER /data/seatunnel  # 赋予当前用户权限(避免权限问题)

如果 Docker 默认用户(UID 1000)需要访问:

bash 复制代码
sudo chmod -R 775 /data/seatunnel  # 开放读写权限

或更安全的做法:

bash 复制代码
sudo chown -R 1000:1000 /data/seatunnel  # 让容器用户(通常UID 1000)拥有权限

使用方式

启动 SeaTunnel:

bash 复制代码
docker-compose up -d

检查容器状态:

bash 复制代码
docker-compose ps
docker-compose logs -f  # 实时查看日志

访问 Web UI:

浏览器访问 http://<宿主机IP>:9090

优点

✅ 数据持久化:所有配置和日志存储在 /data/seatunnel,即使容器删除也不会丢失。

✅ 统一管理:所有数据集中存放在 /data 目录,便于备份和维护。

✅ 权限可控:通过 chown/chmod 确保容器能正确读写数据。

如果 SeaTunnel 还需要其他数据卷(如插件目录),可以按相同方式挂载到 /data/seatunnel/plugins。

相关推荐
果子⌂2 小时前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php
无敌糖果2 小时前
K8S数据流核心底层逻辑剖析
docker·容器·kubernetes·k8s架构·底层逻辑·k8s数据流
亲爱的非洲野猪4 小时前
关于k8s Kubernetes的10个面试题
云原生·容器·kubernetes
西京刀客4 小时前
k8s之configmap
云原生·容器·kubernetes
极限实验室6 小时前
一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境
数据库·docker
超级小忍7 小时前
Spring Boot 与 Docker 的完美结合:容器化你的应用
spring boot·后端·docker
B1nna9 小时前
Docker学习
学习·docker·容器
缘友一世9 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
慕木兮人可16 小时前
Docker部署MySQL镜像
spring boot·后端·mysql·docker·ecs服务器