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 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务