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。

相关推荐
关关长语13 小时前
Vue本地部署包快速构建为Docker镜像
前端·vue.js·docker
水滴与鱼14 小时前
DOCKER制作ROS运行的镜像文件
运维·docker·容器
洒家肉山大魔王16 小时前
Kubernetes中Pod 处于 CrashLoopBackOff 状态(生产环境)
linux·容器·kubernetes·pod·pod循环重启
杨浦老苏17 小时前
安全的消息传递和协作工具Virola Messenger
docker·即时通讯·群晖·im
Lynnxiaowen18 小时前
今天我们学习kubernetes内容Ingress资源对象
学习·容器·kubernetes
jason成都19 小时前
emqx的docker部署
运维·docker·容器
mixboot19 小时前
docker 国内镜像源
docker·镜像源
谷粒.20 小时前
云原生时代的测试策略:Kubernetes环境下的测试实践
运维·网络·云原生·容器·kubernetes
java_logo20 小时前
Milvus GUI ATTU Docker 容器化部署指南
运维·数据库·docker·容器·eureka·milvus
❥ღ Komo·21 小时前
K8s Secrets:敏感数据安全存储指南
安全·容器·kubernetes