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

如何配置pgAdmin以访问Docker Compose中各容器内的PostgreSQL数据库

配置pgAdmin连接Docker Compose中的PostgreSQL容器

我来一步步带你搞定pgAdmin连接各个PostgreSQL容器的配置,操作起来很简单,跟着来就行!

1. 在Docker Compose中添加pgAdmin服务

首先,你需要在现有的docker-compose.yml文件里添加pgAdmin的服务配置,让它和你的其他Django应用容器处于同一网络,这样才能直接访问PostgreSQL实例。

把这段配置加到你的docker-compose.yml里:

services:
  # 这里保留你已有的其他服务(Django应用、PostgreSQL等)
  pgadmin:
    image: dpage/pgadmin4:latest
    container_name: pgadmin_container
    ports:
      - "5050:80"  # 主机端口5050映射到容器的80端口
    environment:
      - PGADMIN_DEFAULT_EMAIL=your-email@example.com  # 登录pgAdmin的邮箱
      - PGADMIN_DEFAULT_PASSWORD=your-secure-password  # 登录密码
    volumes:
      - pgadmin_data:/var/lib/pgadmin  # 持久化存储pgAdmin配置,避免重启丢失
    networks:
      - your-existing-network  # 替换成你现有服务使用的网络名称
    restart: unless-stopped

volumes:
  pgadmin_data:  # 声明pgAdmin的持久化卷

networks:
  your-existing-network:
    external: true  # 如果这个网络已经存在(比如你之前的服务用了这个网络)就加这个;新创建的话去掉该行

关键配置说明:

  • networks:必须和你的PostgreSQL容器使用同一个网络,这样pgAdmin才能通过容器服务名访问数据库。如果你的现有服务没指定自定义网络,Docker会自动创建默认网络(格式是项目名_default),直接用这个名称就行。
  • volumes:持久化pgAdmin的配置和服务器连接信息,下次启动不用重新添加服务器。
  • environment:设置登录pgAdmin的账号密码,记得改成你自己的。

2. 启动pgAdmin和所有服务

在终端运行以下命令,启动包括pgAdmin在内的所有容器:

docker-compose up -d

启动完成后,打开浏览器访问http://localhost:5050,用你刚才设置的邮箱和密码登录pgAdmin。

3. 获取PostgreSQL容器的连接信息

接下来,你需要拿到每个PostgreSQL容器的连接参数,这些信息都在你的Django应用的docker-compose.yml配置里,或者对应PostgreSQL服务的环境变量中:

  • 主机名/地址:Docker Compose中PostgreSQL服务的名称(比如db、django_app1_db),同一网络下可以直接用服务名作为主机名访问。
  • 端口:PostgreSQL默认端口是5432(除非你在配置里改了)。
  • 数据库名称:通常是POSTGRES_DB环境变量的值。
  • 用户名:POSTGRES_USER环境变量的值。
  • 密码:POSTGRES_PASSWORD环境变量的值。

举个例子,你的某个PostgreSQL服务配置可能是这样的:

services:
  django_app1_db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_DB=my_django_db
      - POSTGRES_USER=postgres_user
      - POSTGRES_PASSWORD=postgres_pass
    networks:
      - your-existing-network

那对应的连接参数就是:主机名django_app1_db,端口5432,数据库my_django_db,用户名postgres_user,密码postgres_pass。

4. 在pgAdmin中添加PostgreSQL服务器

登录pgAdmin后,按照以下步骤添加服务器:

  • 右键点击左侧导航栏的Servers,选择Create -> Server...
  • 在General标签页,给这个服务器起个好记的名字(比如“Django App1 数据库”)
  • 切换到Connection标签页:
    • Host name/address:填PostgreSQL服务的名称(比如django_app1_db)
    • Port:填5432(如果改了端口就填自定义的)
    • Maintenance database:填POSTGRES_DB的值(比如my_django_db)
    • Username:填POSTGRES_USER的值(比如postgres_user)
    • Password:填POSTGRES_PASSWORD的值(比如postgres_pass)
    • 可以勾选Save password,下次不用重复输入
  • 点击Save,就能在左侧看到这个数据库服务器了,展开后可以浏览所有表、数据等内容。

重复这个步骤,把你所有的PostgreSQL容器都添加到pgAdmin里即可。

常见问题排查

  • 连接失败:检查pgAdmin和PostgreSQL容器是否在同一个网络,服务名称有没有写错,密码和环境变量是否一致。
  • 端口冲突:如果5050端口被占用,可以把ports里的5050:80改成其他端口,比如5051:80,然后访问http://localhost:5051。
  • 配置丢失:确保你添加了pgadmin_data卷,这样重启容器后连接信息不会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:16:31