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 脚本。参见:[***]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429