本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

本镜像为 PostgreSQL 数据库与 pgRouting 扩展的预集成 Docker 镜像,旨在提供自动化构建、版本同步且即开即用的地理空间路由分析环境。镜像基于官方 PostgreSQL 镜像构建,预安装并配置 pgRouting 扩展,支持所有当前受支持的 PostgreSQL 主版本(如 12、13、14、15、16),适用于需要快速部署地理空间路由功能的开发、测试及生产环境。
16-pgrouting-3.5、15-pgrouting-3.4),满足不同版本兼容性需求。pgrouting、postgis 依赖),容器启动时自动在指定数据库中启用扩展。postgres:<version>-alpine 镜像构建,减小镜像体积(约 200-300MB)。amd64/arm64 架构镜像,适配 x86 服务器与 ARM 开发设备(如 M1/M2 Mac)。从 Docker Hub 拉取指定版本镜像(推荐指定版本标签以确保稳定性):
# 格式:docker pull <镜像名>:<postgres版本>-pgrouting-<pgrouting版本> docker pull postgres-pgrouting:16-pgrouting-3.5
启动一个单节点容器,默认启用 pgRouting 扩展:
docker run -d \ --name pgroute-demo \ -p 5432:5432 \ -e POSTGRES_PASSWORD=mysecretpassword \ -e POSTGRES_DB=gisdb \ postgres-pgrouting:16-pgrouting-3.5
通过挂载数据卷实现 PostgreSQL 数据持久化(推荐生产环境使用):
# 创建本地数据目录 mkdir -p /data/pgroute # 运行容器并挂载数据卷 docker run -d \ --name pgroute-prod \ -p 5432:5432 \ -e POSTGRES_PASSWORD=securepass \ -v /data/pgroute:/var/lib/postgresql/data \ postgres-pgrouting:16-pgrouting-3.5
支持通过环境变量自定义数据库初始化参数,常用变量如下:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
POSTGRES_USER | 数据库管理员用户名 | postgres |
POSTGRES_PASSWORD | 管理员密码(必填,否则容器启动失败) | 无 |
POSTGRES_DB | 初始数据库名称 | postgres |
PGROUTING_EXTENSIONS | 自动启用的 pgRouting 扩展列表(逗号分隔) | pgrouting,postgis |
POSTGRES_INITDB_ARGS | 初始化数据库时的额外参数(如编码) | --encoding=UTF8 |
示例:指定自定义用户、数据库及扩展:
docker run -d \ -e POSTGRES_USER=gisadmin \ -e POSTGRES_PASSWORD=gis@2024 \ -e POSTGRES_DB=city_routing \ -e PGROUTING_EXTENSIONS="pgrouting,postgis,postgis_topology" \ postgres-pgrouting:16-pgrouting-3.5
如需修改 PostgreSQL 或 pgRouting 配置(如内存参数、连接池),可通过挂载配置文件覆盖默认配置:
# 准备自定义 postgresql.conf(从容器中复制默认配置修改) docker cp pgroute-demo:/var/lib/postgresql/data/postgresql.conf ./my-postgres.conf # 挂载自定义配置文件运行 docker run -d \ --name pgroute-custom \ -v ./my-postgres.conf:/var/lib/postgresql/data/postgresql.conf \ -v /data/pgroute:/var/lib/postgresql/data \ postgres-pgrouting:16-pgrouting-3.5
使用 docker-compose.yml 简化多服务集成(如搭配 GIS 应用后端):
version: '3.8' services: pgroute: image: postgres-pgrouting:16-pgrouting-3.5 container_name: pgroute-service restart: always environment: POSTGRES_USER: gisuser POSTGRES_PASSWORD: gis@pass123 POSTGRES_DB: routing_db PGROUTING_EXTENSIONS: "pgrouting,postgis,postgis_raster" ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data - ./init-scripts:/docker-entrypoint-initdb.d # 挂载初始化 SQL 脚本 networks: - gis-network networks: gis-network: driver: bridge volumes: pgdata: # 命名卷自动管理数据持久化
启动服务:docker-compose up -d
容器启动后,可通过 psql 客户端验证 pgRouting 是否正常加载:
# 进入容器 docker exec -it pgroute-demo psql -U postgres -d gisdb # 在 psql 终端执行 gisdb=# SELECT pgr_version(); pgr_version ---------------------------------------- (3.5.0,1.7.0,3.5.0,bfd9c8c,master,1.7.0) (1 row)
若返回版本信息,说明 pgRouting 已成功集成。
14-pgrouting-* 标签)。/var/lib/postgresql/data 目录数据,避免容器删除导致数据丢失。postgresql.conf 调整 shared_buffers、work_mem 等参数优化性能。pg_upgrade)。免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429