You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将宿主机Postgres、Redis暴露给Docker中的Apache Superset?

配置Docker版Superset连接宿主机的Postgres和Redis

步骤1:移除内置的Redis/Postgres服务

直接删除docker-compose-non-dev.yml里自带的这两段服务代码:

redis:
    image: redis:7
    container_name: superset_cache
    restart: unless-stopped
    volumes:
      - redis:/data

  db:
    env_file: docker/.env-non-dev
    image: postgres:14
    container_name: superset_db
    restart: unless-stopped
    volumes:
      - db_home:/var/lib/postgresql/data

同时删除文件顶部volumes段中的redis和db_home定义,避免创建无用的存储卷。

步骤2:修改环境变量配置

打开docker/.env-non-dev文件,替换成宿主机上Postgres和Redis的实际参数:

# Redis连接配置
REDIS_HOST=host.docker.internal  # Linux系统也可直接填宿主机实际IP,比如192.168.3.10
REDIS_PORT=6379
REDIS_DB=0
# 若Redis设了密码,取消下面注释并填写密码
# REDIS_PASSWORD=your_redis_password

# Postgres连接配置(Superset元数据库用宿主机的Postgres)
POSTGRES_HOST=host.docker.internal
POSTGRES_PORT=5432
POSTGRES_DB=superset  # 提前在宿主机Postgres中创建好这个数据库
POSTGRES_USER=superset_user  # 宿主机Postgres中拥有该库权限的用户
POSTGRES_PASSWORD=superset_password

步骤3:调整服务依赖项

找到文件顶部的x-superset-depends-on配置块,删除原有的redis和db依赖,修改后如下:

x-superset-depends-on: &superset-depends-on
  # 不再依赖内置的redis和db服务

步骤4:开放宿主机服务的访问权限

  • Postgres:修改pg_hba.conf,添加允许Docker网段(如172.17.0.0/16)或host.docker.internal对应IP访问的规则;同时修改postgresql.conf中的listen_addresses为*,允许远程连接,最后重启Postgres服务。
  • Redis:若Redis绑定了127.0.0.1,修改redis.conf中的bind为0.0.0.0(或添加Docker网段IP),确保密码与环境变量配置一致,然后重启Redis服务。

启动Superset

执行以下命令启动服务:

docker-compose -f docker-compose-non-dev.yml up -d

内容的提问来源于stack exchange,提问作者Naga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:50:42