Docker安装的pgAdmin4无服务器显示,如何连接本地PostgreSQL 13.5?
本地PostgreSQL与Docker版pgAdmin4连接操作步骤
方案1:保留现有pgAdmin容器(无需重建)
步骤1:修改PostgreSQL访问配置
- 编辑PostgreSQL主配置文件,Ubuntu18.04+PG13.5默认路径为
/etc/postgresql/13/main/postgresql.conf - 找到
listen_addresses配置项,修改为允许所有地址监听:listen_addresses = '*' - 保存后编辑同目录下的
pg_hba.conf,末尾新增一行放行Docker网段的访问请求:host all all 172.17.0.0/16 scram-sha-256 - 执行命令重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
步骤2:获取宿主机Docker网关地址
Docker容器访问宿主机需要通过网关IP,执行以下命令获取地址:docker network inspect bridge | grep Gateway
输出返回的IP(默认是172.17.0.1)即为宿主机网关地址。
步骤3:在pgAdmin中添加服务器
- 登录pgAdmin4后台,右键左侧边栏的
Servers,选择Register>Server - General标签页:Name字段自定义填写即可,例如
本地PG13.5 - Connection标签页按以下参数填写:
- Host name/address:填写步骤2拿到的网关IP,例如
172.17.0.1 - Port:
5432 - Maintenance database:
postgres - Username:
postgres - Password:本地postgres用户的登录密码,如未设置可先在本地psql执行
ALTER USER postgres PASSWORD '自定义密码';设置
- Host name/address:填写步骤2拿到的网关IP,例如
- 点击保存即可看到服务器出现在侧边栏。
方案2:主机网络模式(更简单,需重建pgAdmin容器)
如果不想修改PostgreSQL配置,可以直接让pgAdmin容器共享宿主机网络栈:
- 停止并删除现有pgAdmin容器:
docker stop <你的pgAdmin容器ID> docker rm <你的pgAdmin容器ID> - 用主机网络模式重新启动容器:
docker run --network host -e "PGADMIN_DEFAULT_EMAIL=testemail@gmail.com" -e "PGADMIN_DEFAULT_PASSWORD=testpassword" -d dpage/pgadmin4 - 此时pgAdmin访问地址为
http://127.0.0.1/browser,添加服务器时Host直接填localhost,其余配置和方案1步骤3一致即可。
内容的提问来源于stack exchange,提问作者Ahmad Anis
相关产品推荐
相关产品推荐

