
sosedoff/pgwebPgweb 是一款跨平台、基于 Web 的 PostgreSQL 数据库浏览器,采用 Go 语言开发。它提供直观的 Web 界面,支持用户通过浏览器便捷地管理、查询和浏览 PostgreSQL 数据库。
从 Docker Hub 拉取 Pgweb 最新镜像:
bashdocker pull sosedoff/pgweb
运行容器并映射端口(默认使用 8081 端口提供 Web 服务):
bashdocker run -p 8081:8081 sosedoff/pgweb
-p 8081:8081 表示将容器内的 8081 端口映射到主机的 8081 端口,确保外部可通过主机端口访问 Pgweb 服务。容器启动后,通过浏览器访问 http://localhost:8081 即可打开 Pgweb 界面。首次访问需手动配置数据库连接信息(如未通过环境变量预设)。
通过 Docker Compose 可实现 Pgweb 与 PostgreSQL 数据库的联动部署,简化多容器协调。
新建 docker-compose.yml 文件,内容如下:
yamlversion: '3' # 需根据 Docker Compose 版本调整,如 '2' 或 '3.8' services: pgweb: container_name: pgweb # 容器名称 restart: always # 容器退出后自动重启 image: sosedoff/pgweb # 使用的 Docker 镜像 ports: - "8081:8081" # 端口映射:主机端口:容器端口 links: - postgres:postgres # 链接到名为 postgres 的数据库容器(需确保数据库容器名称为 postgres) environment: # 数据库连接 URL,格式:postgres://用户:密码@主机:端口/数据库名?sslmode=disable - DATABASE_URL=postgres://postgres:postgres@postgres:5432/postgres?sslmode=disable depends_on: - postgres # 依赖 postgres 服务,确保先启动数据库 postgres: # 示例 PostgreSQL 服务(实际使用时可替换为已有数据库) image: postgres:14 environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=postgres ports: - "5432:5432"
在配置文件所在目录执行以下命令启动服务:
bashdocker-compose up -d # -d 表示后台运行
服务启动后,通过 http://localhost:8081 访问 Pgweb,无需手动配置连接(已通过 DATABASE_URL 自动注入)。
| 环境变量 | 说明 | 示例值 |
|---|---|---|
DATABASE_URL | PostgreSQL 数据库连接 URL,用于指定 Pgweb 连接的数据库信息。 | postgres://user:pass@postgres-host:5432/mydb?sslmode=disable |
DATABASE_URL 格式说明:postgres://<用户名>:<密码>@<主机地址>:<端口>/<数据库名>?<额外参数>
<用户名>:数据库访问用户名(如 postgres)。<密码>:用户名对应的密码。<主机地址>:PostgreSQL 服务地址(Docker 环境中可使用容器名,如 postgres)。<端口>:PostgreSQL 服务端口(默认 5432)。<数据库名>:要连接的数据库名称。<额外参数>:可选,如 sslmode=disable(禁用 SSL,适合本地开发环境)。Pgweb 默认使用 8081 端口提供 Web 服务,容器部署时需通过 -p <主机端口>:8081 映射端口,确保外部可访问。若主机 8081 端口被占用,可替换为其他端口(如 -p 8082:8081)。
sslmode=require 配置)并限制访问 IP。depends_on 仅保证启动顺序,不保证数据库完全就绪,生产环境建议添加健康检查(如 healthcheck 配置)。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务