獲取官方鏡像
從 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:latestcontainer_name: sea_tunnel_containerhostname: seatunnel-serverports:- "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: 30stimeout: 10sretries: 3deploy: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。