最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker 部署Datart BI工具完整指南(PostgreSQL 持久化存儲)

 更新時間:2026年03月21日 15:07:46   作者:???傀儡師  
本文檔詳細(xì)介紹如何使用Docker部署Datart數(shù)據(jù)可視化平臺,并使用PostgreSQL作為元數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)持久化存儲,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

一、概述

本文檔詳細(xì)介紹如何使用 Docker 部署 Datart 數(shù)據(jù)可視化平臺,并使用 PostgreSQL 作為元數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)持久化存儲。采用此方案后,即使容器被刪除重建,所有配置、用戶、報表等數(shù)據(jù)均不會丟失。

環(huán)境要求

  • Docker 18.09+
  • PostgreSQL 16.4+(或更高版本)
  • 服務(wù)器內(nèi)存:建議 2GB 以上
  • 開放端口:8080(Datart)、5432(PostgreSQL)

二、準(zhǔn)備 PostgreSQL 數(shù)據(jù)庫

2.1 安裝 PostgreSQL(如未安裝)

使用 Docker 部署 PostgreSQL(推薦):

docker run -d \
  --name postgres \
  --restart always \
  -e POSTGRES_PASSWORD='your_password' \
  -e POSTGRES_DB=postgres \
  -p 5432:5432 \
  -v /data/postgres:/var/lib/postgresql \
  -v /data/postgres/config:/etc/postgresql \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres:latest

或使用系統(tǒng)包管理器安裝(Ubuntu/Debian):

apt-get update
apt-get install -y postgresql-13
systemctl start postgresql

2.2 創(chuàng)建 Datart 數(shù)據(jù)庫

連接到 PostgreSQL 并創(chuàng)建數(shù)據(jù)庫:

# 使用 Docker 部署的 PostgreSQL
docker exec -it postgres psql -U postgres
# 或使用系統(tǒng)安裝的 PostgreSQL
sudo -u postgres psql

執(zhí)行以下 SQL 命令:

-- 創(chuàng)建數(shù)據(jù)庫(注意字符集)
CREATE DATABASE datart 
  WITH ENCODING='UTF8' 
  LC_COLLATE='en_US.UTF-8' 
  LC_CTYPE='en_US.UTF-8' 
  TEMPLATE=template0;
-- 可選:創(chuàng)建專用用戶
CREATE USER datart_user WITH PASSWORD 'datart_password';
-- 授予權(quán)限
GRANT ALL PRIVILEGES ON DATABASE datart TO datart_user;
-- 退出
\q

三、配置 Datart

3.1 創(chuàng)建持久化目錄

# 創(chuàng)建配置、文件、日志存儲目錄
mkdir -p /data/datart/config
mkdir -p /data/datart/files
mkdir -p /data/datart/logs

3.2 編寫配置文件

創(chuàng)建配置文件 /data/datart/config/datart.conf

# ============================================
# Datart 配置文件(PostgreSQL 版本)
# ============================================
# ---------- PostgreSQL 數(shù)據(jù)庫連接 ----------
# 數(shù)據(jù)庫服務(wù)器地址(可以是 IP、域名或容器名)
datasource.ip=127.0.0.1
datasource.port=5432
datasource.database=datart
datasource.username=postgres
datasource.password=your_password
# JDBC 驅(qū)動配置
datasource.driver-class-name=org.postgresql.Driver
datasource.url=jdbc:postgresql://127.0.0.1:5432/datart
# ---------- 連接池配置 ----------
# 最大連接數(shù)(根據(jù)服務(wù)器性能調(diào)整)
spring.datasource.hikari.maximum-pool-size=20
# 最小空閑連接
spring.datasource.hikari.minimum-idle=5
# 連接超時時間(毫秒)
spring.datasource.hikari.connection-timeout=30000
# 空閑連接存活時間(毫秒)
spring.datasource.hikari.idle-timeout=600000
# 連接最大生命周期(毫秒)
spring.datasource.hikari.max-lifetime=1800000
# ---------- 服務(wù)配置 ----------
# 服務(wù)端口
server.port=8080
# 服務(wù)監(jiān)聽地址(0.0.0.0 表示所有網(wǎng)卡)
server.address=0.0.0.0
# 會話超時時間(分鐘)
server.servlet.session.timeout=30m
# ---------- Datart 應(yīng)用配置 ----------
# 應(yīng)用訪問地址(必須修改為實際服務(wù)器地址)
datart.address=http://your-server-ip:8080
# 文件存儲路徑(容器內(nèi)路徑)
datart.filepath=/datart/files
# 關(guān)閉郵件功能(如不需要發(fā)送郵件)
datart.send-mail=false
# ---------- 日志配置 ----------
# 日志級別(DEBUG/INFO/WARN/ERROR)
logging.level.com.datart=INFO
logging.level.org.springframework.web=INFO
# 日志文件路徑
logging.file.path=/datart/logs
# ---------- 其他配置 ----------
# 是否允許注冊(生產(chǎn)環(huán)境建議關(guān)閉)
datart.user.registration.enabled=true
# 默認(rèn)時區(qū)
spring.jackson.time-zone=Asia/Shanghai

3.3 配置文件權(quán)限設(shè)置

# 確保配置文件可讀
chmod 644 /data/datart/config/datart.conf

四、部署 Datart

4.1 拉取鏡像

# x86鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_datart:latest
# arrch64鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/datart:latest

4.2 啟動容器

docker run -d \
  --name datart \
  --restart unless-stopped \
  -p 8080:8080 \
  -v /data/datart/config/datart.conf:/datart/config/datart.conf \
  -v /data/datart/files:/datart/files \
  -v /data/datart/logs:/datart/logs \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/datart:latest

參數(shù)說明:

  • -d:后臺運行
  • --name datart:容器名稱
  • --restart unless-stopped:自動重啟
  • -p 8080:8080:端口映射
  • -v:掛載持久化目錄

4.3 驗證啟動狀態(tài)

# 查看容器運行狀態(tài)
docker ps | grep datart
# 查看啟動日志
docker logs -f datart
# 預(yù)期輸出(關(guān)鍵信息)
# Started DatartServerApplication in X.XXX seconds
# HikariPool-1 - Start completed.
# Tomcat started on port(s): 8080 (http)

五、驗證持久化存儲

5.1 驗證數(shù)據(jù)庫連接

進(jìn)入 PostgreSQL 查看表結(jié)構(gòu):

# 進(jìn)入 PostgreSQL 容器
docker exec -it postgres psql -U postgres -d datart
# 查看表列表(應(yīng)該看到 Datart 自動創(chuàng)建的表)
\dt
# 預(yù)期輸出類似:
# user              | datart_user      | table | datart_user
# organization      | datart_user      | table | datart_user
# source            | datart_user      | table | datart_user
# view              | datart_user      | table | datart_user
# ...

5.2 訪問 Web 界面

  1. 打開瀏覽器訪問:http://你的服務(wù)器IP:8080
  2. 首次訪問需要注冊管理員賬號
  3. 登錄后創(chuàng)建測試報表或上傳文件

5.3 驗證文件持久化

# 在 Datart 中上傳一個測試文件(如圖片)
# 然后檢查宿主機(jī)目錄
ls -la /data/datart/files/
# 應(yīng)該能看到上傳的文件

5.4 驗證數(shù)據(jù)持久化

# 重啟容器
docker restart datart
# 再次訪問 Web 界面,確認(rèn)以下內(nèi)容未丟失:
# - 管理員賬號可以正常登錄
# - 之前創(chuàng)建的報表依然存在
# - 上傳的文件依然可用

六、高級配置

6.1 使用 Docker Compose 部署(推薦)

創(chuàng)建 docker-compose.yml 文件:

version: '3.8'
services:
  postgres:
    image: postgres:13
    container_name: datart-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: datart
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: your_password
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    networks:
      - datart-network
  datart:
    image: registry.cn-hangzhou.aliyuncs.com/qiluo-images/datart:latest
    container_name: datart
    restart: unless-stopped
    depends_on:
      - postgres
    ports:
      - "8080:8080"
    volumes:
      - ./datart/config/datart.conf:/datart/config/datart.conf
      - ./datart/files:/datart/files
      - ./datart/logs:/datart/logs
    networks:
      - datart-network
networks:
  datart-network:
    driver: bridge

啟動服務(wù):

# 啟動所有服務(wù)
docker-compose up -d
# 查看日志
docker-compose logs -f datart
# 停止服務(wù)
docker-compose down
# 停止并刪除數(shù)據(jù)(謹(jǐn)慎使用)
docker-compose down -v

6.2 SSL/HTTPS 配置(可選)

如需啟用 HTTPS,建議使用 Nginx 反向代理:

server {
    listen 443 ssl http2;
    server_name datart.yourdomain.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

七、常見問題排查

7.1 容器啟動失敗

# 查看詳細(xì)錯誤日志
docker logs datart
# 常見錯誤及解決
錯誤信息原因解決方案
Connection refusedPostgreSQL 未啟動或端口不通檢查 PostgreSQL 狀態(tài):docker ps | grep postgres
Database "datart" does not exist數(shù)據(jù)庫未創(chuàng)建手動創(chuàng)建數(shù)據(jù)庫:CREATE DATABASE datart;
Password authentication failed密碼錯誤檢查配置文件中的密碼是否正確
ClassNotFoundException: org.postgresql.Driver缺少 PostgreSQL 驅(qū)動鏡像已內(nèi)置驅(qū)動,檢查鏡像是否完整

7.2 PostgreSQL 連接問題

# 測試從容器內(nèi)連接 PostgreSQL
docker exec -it datart bash
apt-get update && apt-get install -y postgresql-client
psql -h 宿主機(jī)IP -p 5432 -U postgres -d datart
# 如果連接失敗,檢查:
# 1. PostgreSQL 是否允許遠(yuǎn)程連接
docker exec -it postgres cat /var/lib/postgresql/data/pg_hba.conf
# 應(yīng)包含:host all all 0.0.0.0/0 md5
# 2. 防火墻是否開放 5432 端口
iptables -L -n | grep 5432

7.3 內(nèi)存不足問題

如果服務(wù)器內(nèi)存不足,調(diào)整 JVM 參數(shù):

docker run -d \
  --name datart \
  --restart unless-stopped \
  -p 8080:8080 \
  -e JAVA_OPTS="-Xms512m -Xmx1024m" \
  -v /data/datart/config/datart.conf:/datart/config/datart.conf \
  -v /data/datart/files:/datart/files \
  -v /data/datart/logs:/datart/logs \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/datart:latest

7.4 配置文件未生效

# 檢查容器內(nèi)的配置文件內(nèi)容
docker exec datart cat /datart/config/datart.conf
# 檢查環(huán)境變量
docker exec datart env | grep -E "(DATASOURCE|JDBC)"
# 如果配置未生效,重啟容器
docker restart datart

八、備份與恢復(fù)

8.1 數(shù)據(jù)庫備份

# 備份 PostgreSQL 數(shù)據(jù)庫
docker exec postgres pg_dump -U postgres datart > datart_backup_$(date +%Y%m%d).sql
# 恢復(fù)數(shù)據(jù)庫
cat datart_backup_20240101.sql | docker exec -i postgres psql -U postgres -d datart

8.2 文件備份

# 備份上傳的文件
tar -czf datart_files_backup_$(date +%Y%m%d).tar.gz /data/datart/files/
# 恢復(fù)文件
tar -xzf datart_files_backup_20240101.tar.gz -C /

8.3 完整備份腳本

創(chuàng)建備份腳本 /home/datart/backup.sh

#!/bin/bash
BACKUP_DIR="/data/datart/backups"
DATE=$(date +%Y%m%d_%H%M%S)
# 創(chuàng)建備份目錄
mkdir -p $BACKUP_DIR
# 備份數(shù)據(jù)庫
docker exec postgres pg_dump -U postgres datart > $BACKUP_DIR/datart_db_$DATE.sql
# 備份文件
tar -czf $BACKUP_DIR/datart_files_$DATE.tar.gz /data/datart/files/
# 備份配置文件
cp /data/datart/config/datart.conf $BACKUP_DIR/datart_conf_$DATE.conf
# 刪除 30 天前的備份
find $BACKUP_DIR -name "datart_*" -mtime +30 -delete
echo "Backup completed: $DATE"

添加定時任務(wù):

chmod +x /data/datart/backup.sh
echo "0 2 * * * /home/datart/backup.sh" | crontab -

九、監(jiān)控與維護(hù)

9.1 查看資源使用

# 查看容器資源占用
docker stats datart postgres
# 查看日志大小
du -sh /data/datart/logs/

9.2 日志輪轉(zhuǎn)配置

創(chuàng)建 /etc/logrotate.d/datart

/data/datart/logs/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    copytruncate
}

9.3 性能優(yōu)化建議

  1. 數(shù)據(jù)庫優(yōu)化:根據(jù)數(shù)據(jù)量調(diào)整 PostgreSQL 共享內(nèi)存
  2. JVM 優(yōu)化:根據(jù)服務(wù)器內(nèi)存調(diào)整 -Xmx 參數(shù)
  3. 連接池優(yōu)化:根據(jù)并發(fā)用戶數(shù)調(diào)整 maximum-pool-size

十、總結(jié)

通過以上配置,Datart 已經(jīng)成功部署在 Docker 中,并使用 PostgreSQL 作為持久化存儲。該方案具有以下優(yōu)勢:

  • ? 數(shù)據(jù)持久化:所有數(shù)據(jù)存儲在外部 PostgreSQL 數(shù)據(jù)庫
  • ? 文件持久化:上傳文件存儲在宿主機(jī)目錄
  • ? 配置持久化:配置文件掛載到宿主機(jī)
  • ? 易于遷移:容器可隨時重建而不丟失數(shù)據(jù)
  • ? 便于備份:數(shù)據(jù)庫和文件可獨立備份

快速命令參考

# 啟動
docker start datart
# 停止
docker stop datart
# 重啟
docker restart datart
# 查看日志
docker logs -f datart
# 進(jìn)入容器
docker exec -it datart bash
# 刪除容器(數(shù)據(jù)不會丟失)
docker rm -f datart
# 重新創(chuàng)建容器(使用相同掛載)
docker run -d --name datart \
  -p 8080:8080 \
  -v /data/datart/config/datart.conf:/datart/config/datart.conf \
  -v /data/datart/files:/datart/files \
  -v /data/datart/logs:/datart/logs \
  registry.cn-hangzhou.aliyuncs.com/qiluo-images/datart:latest

如有問題,請檢查日志輸出并根據(jù)錯誤信息進(jìn)行排查。

到此這篇關(guān)于Docker 部署Datart BI工具完整指南(PostgreSQL 持久化存儲)的文章就介紹到這了,更多相關(guān)Docker 部署Datart BI內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ubuntu16.04Docker的CS模式詳細(xì)介紹

    Ubuntu16.04Docker的CS模式詳細(xì)介紹

    這篇文章主要介紹了Ubuntu16.04Docker的CS模式詳細(xì)介紹的相關(guān)資料,這里對Docker CS模式圖文詳細(xì)介紹,需要的朋友可以參考下
    2016-12-12
  • 解決docker pull被復(fù)位出現(xiàn)的問題

    解決docker pull被復(fù)位出現(xiàn)的問題

    這篇文章主要介紹了解決docker pull被復(fù)位出現(xiàn)的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 卸載Docker時遇到問題的解決方案

    卸載Docker時遇到問題的解決方案

    這篇文章主要介紹了卸載Docker時遇到問題的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • docker 搭建單機(jī)PostgreSQL操作詳解

    docker 搭建單機(jī)PostgreSQL操作詳解

    本文通過實際案例操作演示了如何基于Docker搭建pg的完整過程,并補(bǔ)充了pg數(shù)據(jù)庫操作的常用命令和授權(quán)命令,感興趣的朋友一起看看吧
    2025-04-04
  • docker對網(wǎng)絡(luò)和程序速度的影響解讀

    docker對網(wǎng)絡(luò)和程序速度的影響解讀

    本文通過對比分析,測試了在宿主機(jī)和Docker容器中部署Spring Boot程序的性能差異,在網(wǎng)絡(luò)延遲方面,Docker容器比宿主機(jī)慢0.1~0.2毫秒,在程序運行速度方面,宿主機(jī)和Docker容器的平均運行時間相近,單次運行時間存在較大差異,無法確定Docker容器在速度上優(yōu)于宿主機(jī)
    2025-01-01
  • 基于Maven+Docker的WebApp打包與部署全過程

    基于Maven+Docker的WebApp打包與部署全過程

    這篇文章主要介紹了基于Maven+Docker的WebApp打包與部署的相關(guān)資料,文中通過代碼講解了如何找到正確的JAR包、覆蓋Docker使用的JAR、構(gòu)建Docker鏡像、解決Docker構(gòu)建失敗的問題以及在服務(wù)器上部署,需要的朋友可以參考下
    2026-02-02
  • Docker修改容器內(nèi)部文件的3種簡單方法

    Docker修改容器內(nèi)部文件的3種簡單方法

    docker容器化技術(shù)在打包生產(chǎn)和發(fā)布中占據(jù)著更高的地位,其高效簡便很有亮點,下面這篇文章主要給大家介紹了關(guān)于Docker修改容器內(nèi)部文件的3種簡單方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • CentOS7.6系統(tǒng)下Docker安裝部署教程

    CentOS7.6系統(tǒng)下Docker安裝部署教程

    這篇文章主要為大家介紹了CentOS7.6系統(tǒng)下Docker的安裝部署教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • docker使用http_proxy配置代理解決方法

    docker使用http_proxy配置代理解決方法

    這篇文章主要給大家介紹了關(guān)于docker使用http_proxy配置代理解決方法的相關(guān)資料,Docker HTTP(S) Proxy是一種在Docker容器內(nèi)部設(shè)置 HTTP(S) 代理的方法,以便于容器內(nèi)的應(yīng)用程序可以方便地通過代理訪問互聯(lián)網(wǎng),需要的朋友可以參考下
    2024-05-05
  • 關(guān)于docker部署fastapi項目以及日志掛載方式

    關(guān)于docker部署fastapi項目以及日志掛載方式

    這篇文章主要介紹了關(guān)于docker部署fastapi項目以及日志掛載方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論

铜梁县| 青河县| 奉节县| 江川县| 和田市| 渭源县| 水城县| 金沙县| 紫金县| 蓝田县| 静海县| 建湖县| 武安市| 本溪市| 石景山区| 江达县| 财经| 延吉市| 图片| 武安市| 安岳县| 永安市| 大埔区| 高尔夫| 绩溪县| 库尔勒市| 防城港市| 遵义市| 临西县| 嘉禾县| 鄱阳县| 巴南区| 和顺县| 桐城市| 泸州市| 都兰县| 乐清市| 恩施市| 长宁县| 陵水| 易门县|