
cospirit/postgres本镜像基于PostgreSQL 9.6和11两个稳定版本构建,预集成PostGis 2.5空间扩展及pg***加密扩展。旨在为需要空间数据处理能力和数据安全加密的应用提供开箱即用的数据库环境,简化GIS系统、位置服务及敏感数据存储场景的部署流程。
postgis:核心空间数据类型(Geometry/Geography)、空间索引及空间分析函数postgis_topology:拓扑数据模型支持,用于复杂空间关系管理假设镜像标签格式为 <postgres-version>-postgis-2.5,分别对应两个版本:
bash# 拉取PostgreSQL 9.6版本 docker pull [镜像仓库地址]/postgres:9.6-postgis-2.5 # 拉取PostgreSQL 11版本 docker pull [镜像仓库地址]/postgres:11-postgis-2.5
bashdocker run -d \ --name pg96-gis \ -e POSTGRES_DB=gisdb \ -e POSTGRES_USER=gisuser \ -e POSTGRES_PASSWORD=StrongPassw0rd \ -p 5432:5432 \ -v pg96-data:/var/lib/postgresql/data \ [镜像仓库地址]/postgres:9.6-postgis-2.5
bashdocker run -d \ --name pg11-gis \ -e POSTGRES_DB=secure_db \ -e POSTGRES_USER=appuser \ -e POSTGRES_PASSWORD=EncryptPass123 \ -p 5433:5432 \ -v pg11-data:/var/lib/postgresql/data \ [镜像仓库地址]/postgres:11-postgis-2.5
yamlversion: '3.8' services: postgres-gis: image: [镜像仓库地址]/postgres:11-postgis-2.5 # 或使用9.6版本 container_name: postgres-gis-service restart: unless-stopped environment: POSTGRES_DB: "location_db" POSTGRES_USER: "service_user" POSTGRES_PASSWORD: "${DB_PASSWORD}" # 建议通过环境变量注入密码 POSTGRES_INITDB_ARGS: "--encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8" ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data - ./init-scripts:/docker-entrypoint-initdb.d # 可挂载初始化脚本 healthcheck: test: ["CMD-SHELL", "pg_isready -U service_user -d location_db"] interval: 10s timeout: 5s retries: 5 volumes: postgres-data:
扩展已预安装,需在目标数据库中手动启用(首次连接后执行):
sql-- 连接数据库 psql -h localhost -p 5432 -U gisuser -d gisdb -- 启用空间扩展 CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology; -- 启用加密扩展 CREATE EXTENSION pg***; -- 验证扩展安装 SELECT postgis_version(); -- 应返回PostGis 2.5版本信息 SELECT pgp_sym_encrypt('敏感数据', 'encryption_key'); -- 测试pg***功能
继承官方PostgreSQL镜像的核心环境变量,关键配置如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
POSTGRES_DB | 初始化数据库名称 | postgres |
POSTGRES_USER | 超级用户名称 | postgres |
POSTGRES_PASSWORD | 超级用户密码 | 必填(无默认) |
POSTGRES_INITDB_ARGS | initdb命令额外参数 | 无 |
PGDATA | 数据存储路径 | /var/lib/postgresql/data |
通过挂载/var/lib/postgresql/data目录实现数据持久化,建议使用Docker命名卷(如示例中的postgres-data)而非主机目录,提升跨环境兼容性。
POSTGRES_PASSWORD_FILE环境变量从文件读取密码,避免明文暴露postgresql.conf中的性能参数(可通过-v ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf挂载自定义配置)

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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(架构)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务