:
默认VOLUME路径已变更为/var/lib/postgresql
postgis/postgis镜像提供用于运行已安装PostGIS扩展的Postgres的标签。该镜像基于***postgres镜像,提供适用于PostgreSQL 13、14、15、16、17和18版本的PostGIS 3.5.x和3.6.x的Debian和Alpine变体。此外,还提供基于PostgreSQL 16和17的镜像变体,使用各自主分支构建PostGIS及其依赖项,标记为16-master和17-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的PostGIS启用模板数据库。
支持架构:amd64(x86-64)
新用户推荐版本:
postgis/postgis:18-3.6
/var/lib/postgresql(PostgreSQL 18+中变更)postgis/postgis:17-3.5
/var/lib/postgresql/data| 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.1 |
| DockerHub镜像 | Dockerfile | 操作系统 | PostgreSQL | PostGIS |
|---|---|---|---|---|
| postgis/postgis:13-3.5-alpine | Dockerfile | alpine:3.22 | 13 | 3.5.4 |
| postgis/postgis:14-3.5-alpine | Dockerfile | alpine:3.22 | 14 | 3.5.4 |
| postgis/postgis:15-3.5-alpine | Dockerfile | alpine:3.22 | 15 | 3.5.4 |
| postgis/postgis:16-3.5-alpine | Dockerfile | alpine:3.22 | 16 | 3.5.4 |
| postgis/postgis:17-3.5-alpine | Dockerfile | alpine:3.22 | 17 | 3.5.4 |
| postgis/postgis:17-3.6-alpine | Dockerfile | alpine:3.22 | 17 | 3.6.1 |
| postgis/postgis:18-3.6-alpine | Dockerfile | alpine:3.22 | 18 | 3.6.1 |
*-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启用数据库容器,可按以下方式启动:
shdocker run --name some-postgis -e POSTGRES_PASSWORD=mysecretpassword -d postgis/postgis
有关启动和控制Postgres容器的详细说明,请参阅postgres镜像文档。
启动数据库容器后,可直接连接到运行中的容器:
shdocker exec -ti some-postgis psql -U postgres
或启动新容器作为客户端,使用用户定义网络连接两个容器:
shdocker network create some-network # 服务端容器 docker run --name some-postgis --network some-network -e POSTGRES_PASSWORD=mysecretpassword -d postgis/postgis # 客户端容器 docker run -it --rm --network some-network postgis/postgis psql -h some-postgis -U postgres
更多连接方式详见postgres镜像文档和Docker网络文档。
创建和使用空间数据库的更多选项,请参阅PostGIS文档。
由于docker-postgis是Docker PostgreSQL仓库的扩展,所有支持的环境变量在此同样适用:
POSTGRES_PASSWORDPOSTGRES_USERPOSTGRES_DBPOSTGRES_INITDB_ARGSPOSTGRES_INITDB_WALDIRPOSTGRES_HOST_AUTH_METHODPGDATA ⚠️ Docker PostgreSQL >=18中变更!⚠️详情请阅读docker-postgres README
PGDATA卷路径变更从PostgreSQL 18开始,默认数据目录(VOLUME)路径已变更。这影响所有**postgis/postgis:18-***及更新镜像。
卷路径摘要:
| 镜像名称 | 镜像标签范围 | --volume路径 |
|---|---|---|
postgis/postgis | 18-* … | /var/lib/postgresql |
postgis/postgis | 13-* … 17-* | /var/lib/postgresql/data |
请为18+镜像调整卷挂载。更多详情见上游变更。
Docker特定环境变量(如POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD)仅在容器使用空数据目录启动时生效。容器启动时,任何预先存在的数据库将保持不变。
如需重新初始化或更改设置,请先删除或重新创建卷。
libpq环境变量请注意,Docker环境变量与libpq — C库使用的变量不同。后者包括PGDATABASE、PGUSER、PGPASSWORD等客户端工具使用的变量。
故障排除可能具有挑战性。需注意docker-postgis是Docker PostgreSQL仓库的扩展,因此遇到问题时,建议先测试是否可使用PostgreSQL Docker镜像复现。若可复现,建议基于此搜索解决方案。推荐以下资源:
若问题与PostGIS相关:
若无postgres docker使用经验,建议阅读:
在云环境中,默认设置下这些镜像可能存在风险,若端口开放,极易遭受加密货币挖矿程序感染(详见)。
-p 5432:5432而非-p 127.0.0.1:5432:5432)将可从外部访问。即使配置UFW阻止该端口,Docker也会管理自己的iptables规则(详见)。每个postgis/postgis:18-*镜像都包含io_uring异步I/O功能。但部分容器运行时(如containerd)因安全考虑曾禁用io_uring支持。如需试用此功能,请自行承担风险,并确保在seccomp配置文件中显式启用io_uring。
-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:5432postgres Docker镜像的潜在安全问题。若安全扫描器报告漏洞(CVE),请查看[Docker Library FAQ来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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