如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
postgis/postgis 镜像是在官方 postgres 镜像基础上构建的,预装了 PostGIS 空间数据库扩展。该镜像提供 Debian 和 Alpine 两种版本,支持 PostGIS 3.5.x,兼容 PostgreSQL 13、14、15、16、17 版本。此外,还提供基于最新两个 PostgreSQL 版本(16、17)构建的镜像,其中 PostGIS 及其依赖项均从各自的 master 分支编译。
该镜像会为父镜像(postgres)创建的默认数据库自动安装以下扩展,其中部分已完成初始化:
| 扩展名称 | 是否初始化 |
|---|---|
postgis | 是 |
postgis_topology | 是 |
postgis_tiger_geocoder | 是 |
postgis_raster | |
postgis_sfcgal | |
address_standardizer | |
address_standardizer_data_us |
默认数据库名称与管理员用户一致(若未通过 -e POSTGRES_DB 指定,用户名为 postgres 或通过 -e POSTGRES_USER 自定义)。如需使用旧版模板数据库机制启用 PostGIS,镜像还提供名为 template_postgis 的预配置模板库。
支持架构:amd64(即 X86-64)
新手推荐版本:postgis/postgis:17-3.5、postgis/postgis:16-3.5
| DockerHub 镜像 | Dockerfile 链接 | 操作系统 | PostgreSQL 版本 | PostGIS 版本 |
|---|---|---|---|---|
| postgis/postgis:13-3.5 | Dockerfile | debian:bullseye | 13 | 3.5.2 |
| postgis/postgis:14-3.5 | Dockerfile | debian:bullseye | 14 | 3.5.2 |
| postgis/postgis:15-3.5 | Dockerfile | debian:bullseye | 15 | 3.5.2 |
| postgis/postgis:16-3.5 | Dockerfile | debian:bullseye | 16 | 3.5.2 |
| postgis/postgis:17-3.5 | Dockerfile | debian:bullseye | 17 | 3.5.2 |
| postgis/postgis:18-3.6 | Dockerfile | debian:trixie | 18 | 3.6.0 |
| DockerHub 镜像 | Dockerfile 链接 | 操作系统 | PostgreSQL 版本 | PostGIS 版本 |
|---|---|---|---|---|
| postgis/postgis:13-3.5-alpine | Dockerfile | alpine:3.22 | 13 | 3.5.3 |
| postgis/postgis:14-3.5-alpine | Dockerfile | alpine:3.22 | 14 | 3.5.3 |
| postgis/postgis:15-3.5-alpine | Dockerfile | alpine:3.22 | 15 | 3.5.3 |
| postgis/postgis:16-3.5-alpine | Dockerfile | alpine:3.22 | 16 | 3.5.3 |
| postgis/postgis:17-3.5-alpine | Dockerfile | alpine:3.22 | 17 | 3.5.3 |
| postgis/postgis:17-3.6-alpine | Dockerfile | alpine:3.22 | 17 | 3.6.0 |
| postgis/postgis:18-3.6-alpine | Dockerfile | alpine:3.22 | 18 | 3.6.0 |
提供 alpha、beta、rc(发布候选版)及开发版(标记为 ~master),适用于测试新功能。开发版基于 PostgreSQL 16/17,PostGIS 及其依赖从 master 分支编译,模板更新需手动触发(可能延迟数周)。
| DockerHub 镜像 | Dockerfile 链接 | 操作系统 | PostgreSQL 版本 | PostGIS 版本 |
|---|---|---|---|---|
| postgis/postgis:16-master | Dockerfile | debian:bullseye | 16 | 开发版(postgis/geos/proj/gdal) |
| postgis/postgis:17-master | Dockerfile | debian:bullseye | 17 | 开发版(postgis/geos/proj/gdal) |
运行基础 PostGIS 数据库容器:
bashdocker run --name some-postgis -e POSTGRES_PASSWORD=mysecretpassword -d postgis/postgis
更多启动与管理细节,参考 官方 postgres 镜像文档。
直接连接运行中的容器
bashdocker exec -ti some-postgis psql -U postgres
通过客户端容器连接
bashdocker network create some-network
bashdocker run --name some-postgis --network some-network -e POSTGRES_PASSWORD=mysecretpassword -d postgis/postgis
bashdocker run -it --rm --network some-network postgis/postgis psql -h some-postgis -U postgres
关于创建和使用空间数据库的更多选项,参考 PostGIS 官方文档。
继承自官方 PostgreSQL 镜像,支持以下环境变量:
POSTGRES_PASSWORD:数据库密码POSTGRES_USER:管理员用户名(默认 postgres)POSTGRES_DB:默认数据库名(未指定时与用户名一致)POSTGRES_INITDB_ARGS:初始化数据库参数POSTGRES_INITDB_WALDIR:WAL 目录路径POSTGRES_HOST_AUTH_METHOD:主机认证方式PGDATA:数据存储路径注意:仅当容器首次启动且数据目录为空时,这些变量才生效;若数据目录已存在,启动时将忽略变量配置。
镜像环境变量与 PostgreSQL 客户端库(libpq)的变量(如PGDATABASE、PGUSER)不同,需注意区分。
详细说明:[] 故障排查建议
若遇到问题,建议先测试是否可复现于 官方 PostgreSQL 镜像,再按以下方向排查:
PostgreSQL 相关:
PostGIS 相关:
新手参考:
Docker 官方 PostgreSQL 使用指南:[]
默认配置下,云环境中暴露端口的容器易受***(如加密货币挖矿程序入侵)。需注意:
-p 5432:5432 而非 -p 127.0.0.1:5432:5432),端口将对外暴露,且 Docker 自身 iptables 规则可能覆盖 UFW 配置。bashdocker run ... -e POSTGRES_INITDB_ARGS="-c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key"
-p 127.0.0.1:5432:5432)。postgres 镜像,可参考 Docker 官方 FAQ:[]详细:[]bashtrivy image --ignore-unfixed postgis/postgis:16-3.5-alpine # 扫描 PostGIS 镜像 trivy image --ignore-unfixed postgres:16-alpine # 扫描基础 postgres 镜像
postgis/postgis 镜像每周一自动重建以包含最新依赖更新,但 Debian/Alpine 系统及上游 postgres 镜像的更新不受本项目控制,部分问题可能无法立即修复。欢迎提出安全优化建议。
若因 PostGIS 更新导致错误(如 OperationalError: could not access file "$libdir/postgis-X.X"),执行以下命令更新:
bashdocker exec some-postgis update-postgis.sh
该命令为幂等操作,重复执行无害,输出类似:
Updating PostGIS extensions template_postgis to X.X.X NOTICE: version "X.X.X" of extension "postgis" is already installed ...
本项目是 PostGIS 官方项目 的一部分,贡献规则较灵活:
./update.sh 脚本。参见:[]
以下是 postgis/postgis 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务