大数据

docker desktop部署doris

docker compose配置信息:

version: '3.8'

services:
  doris-fe:
    image: apache/doris:fe-latest
    container_name: doris-fe
    hostname: fe
    ports:
      - "8030:8030"
      - "9030:9030"
    environment:
      - FE_SERVERS=fe1:172.20.0.2:9010
      - FE_ID=1
    volumes:
      - doris_fe_data:/opt/apache-doris/fe/doris-meta
      - doris_fe_log:/opt/apache-doris/fe/log
    networks:
      doris_net:
        ipv4_address: 172.20.0.2
    restart: always

  doris-be:
    image: apache/doris:be-latest
    container_name: doris-be
    hostname: be
    depends_on:
      - doris-fe
    ports:
      - "8040:8040"
    environment:
      - FE_SERVERS=fe1:172.20.0.2:9010
      - BE_ADDR=172.20.0.3:9050
    volumes:
      - doris_be_data:/opt/apache-doris/be/storage
      - doris_be_log:/opt/apache-doris/be/log
    networks:
      doris_net:
        ipv4_address: 172.20.0.3
    restart: always

volumes:
  doris_fe_data:
  doris_be_data:
  doris_fe_log:
  doris_be_log:

networks:
  doris_net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/24

默认密码为空,修改root密码

SET PASSWORD FOR 'root' = PASSWORD('your_new_strong_password');

其他

version: '3.8'

services:
  # ========== MySQL ==========
  mysql:
    image: mysql:8.0
    container_name: mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: zhoujielun
      MYSQL_PASSWORD: root
    ports:
      - "3307:3306"
    volumes:
      - mysql_data:/var/lib/mysql
      - ./mysql:/docker-entrypoint-initdb.d   # 可放置初始化 SQL 脚本
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    networks:
      - shared-net

  # ========== Elasticsearch ==========
  elasticsearch:
    build: ./elasticsearch
    container_name: elasticsearch
    restart: unless-stopped
    environment:
      discovery.type: single-node
      xpack.security.enabled: "false"
    ports:
      - "9200:9200"
    volumes:
      - es_data:/usr/share/elasticsearch/data
    networks:
      - shared-net

  # ========== Kibana ==========
  kibana:
    image: kibana:8.19.10
    container_name: kibana
    restart: unless-stopped
    environment:
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch
    networks:
      - shared-net

  # ========== Qdrant ==========
  qdrant:
    image: qdrant/qdrant:v1.16
    container_name: qdrant
    restart: unless-stopped
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - qdrant_data:/qdrant/storage
    networks:
      - shared-net

  # ========== Embedding (Text Embeddings Inference) ==========
  embedding:
    image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.8
    container_name: embedding
    restart: unless-stopped
    ports:
      - "8081:80"
    environment:
      MODEL_ID: /models/bge-large-zh-v1.5
      MAX_CONCURRENT_REQUESTS: "16"
      MAX_BATCH_TOKENS: "16384"
    volumes:
      - ./embedding/bge-large-zh-v1.5:/models/bge-large-zh-v1.5
    networks:
      - shared-net

  # ========== DolphinScheduler Standalone ==========
  dolphinscheduler-standalone:
    image: apache/dolphinscheduler-standalone-server:3.2.2
    container_name: dolphinscheduler-standalone
    restart: always
    ports:
      - "12345:12345"
      - "25333:25333"
    volumes:
      - ./lib/mysql-connector-j-8.0.33.jar:/opt/dolphinscheduler/libs/standalone-server/mysql-connector-j-8.0.33.jar
    environment:
      TZ: Asia/Shanghai
      SPRING_PROFILES_ACTIVE: mysql
      # 使用 MySQL 服务名和内部端口
      SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"
      SPRING_DATASOURCE_USERNAME: ds_user
      SPRING_DATASOURCE_PASSWORD: dolphinscheduler123
    depends_on:
      - mysql
    networks:
      - shared-net

  # ========== Doris FE ==========
  doris-fe:
    image: apache/doris:fe-latest
    container_name: doris-fe
    hostname: fe
    ports:
      - "8030:8030"
      - "9030:9030"
    environment:
      - FE_SERVERS=fe1:172.20.0.2:9010
      - FE_ID=1
    volumes:
      - doris_fe_data:/opt/apache-doris/fe/doris-meta
      - doris_fe_log:/opt/apache-doris/fe/log
    networks:
      doris_net:
        ipv4_address: 172.20.0.2
      shared-net:   # 同时加入共享网络,便于其他服务访问
    restart: always

  # ========== Doris BE ==========
  doris-be:
    image: apache/doris:be-latest
    container_name: doris-be
    hostname: be
    depends_on:
      - doris-fe
    ports:
      - "8040:8040"
    environment:
      - FE_SERVERS=fe1:172.20.0.2:9010
      - BE_ADDR=172.20.0.3:9050
    volumes:
      - doris_be_data:/opt/apache-doris/be/storage
      - doris_be_log:/opt/apache-doris/be/log
    networks:
      doris_net:
        ipv4_address: 172.20.0.3
      shared-net:
    restart: always

# ========== 数据卷 ==========
volumes:
  mysql_data:
  es_data:
  qdrant_data:
  doris_fe_data:
  doris_be_data:
  doris_fe_log:
  doris_be_log:

# ========== 网络 ==========
networks:
  # 共享网络,让所有容器通过服务名互通
  shared-net:
    driver: bridge
  # Doris 专用网络(保留固定 IP)
  doris_net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/24