pgAdmin 是一个强大的 postgresql 的图形化管理工具,既可以本地运行也可以以 web 应用的方式运行。
因为 postgresql 是安装在虚拟机上的,所以我需要让 pgAdmin 以 web 应用的方式运行。
但是文档里只有 Apache 相关的配置, 看起来很复杂,所以在网上搜了简化的安装方法并稍微改了下。
安装 docker 和 nginx

这个看文档即可。

引入现成的 pgadmin 的 docker镜像
docker pull chorss/docker-pgadmin4

运行该镜像:

docker run -e SERVER_MODE=true -e PGADMIN_SETUP_EMAIL=berrydigital@gmail.com \
-e PGADMIN_SETUP_PASSWORD=password -d -p 5050:5050 \
-v /home/robert/data:/data chorss/docker-pgadmin4

-e 表示传入容器的环境变量,PGADMIN_SETUP_EMAILPGADMIN_SETUP_PASSWORD 分别为 pgAdmin 登陆的账号密码。
-V /home/robert/data:/data 表示宿主机目录和容器目录对应的映射关系,宿主机目录可以自己设置。运行时可能会因为目录权限报错,需要修改目录权限(本地开发直接改成 777 )。

nginx 配置
server {
  listen  80;
  server_name YOUR_SERVER_NAME;
  return 301 https://localhost:5050;
}

主要是将请求反向代理到 docker 容器内。

postgresql 配置

默认是 5432 端口,只有本机可以访问,需要修改访问权限:把 postgresql.conf 中的 listen_addresses 的值 设置为 *,表示所有 ip 会被响应。
还需要修改 pg_hba.conf,用于设置连接的许可,添加:
host all all 0.0.0.0/0 md5
表示所有用户及 ip 都可以建立连接,密码加密方式为 md5.

重启 postgresql:sudo service postgresql restart

此时可以通过 YOUR_SERVER_NAME 登陆 pgAdmin 了。

虚拟机ip

进入 pgAdmin 后需要设置 postgresql 所在主机的 ip,也就是虚拟机的 ip:
执行ifconfig取 docker0 的 ip 地址即可。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐