corpusops/pgrouting-bare镜像名称:corpusops/pgrouting-bare
主要用途:提供集成PostgreSQL、PostGIS和pgRouting的稳定地理空间路由功能环境,专注于生产环境的版本控制与兼容性保障。
该镜像基于以下开源Docker镜像构建,继承其核心功能与最佳实践:
解决基础镜像版本标签模糊导致的生产环境非预期升级问题,通过显式版本标记(如X.Y.Z-pgrouting-A.B.C)确保部署环境的可追溯性与稳定性,避免因自动升级引发的兼容性风险。
| 功能特性 | 描述 |
|---|---|
| 稳定版本控制 | 明确的版本标签策略,杜绝生产环境因镜像标签(如latest)自动更新导致的版本混乱。 |
| 地理空间数据支持 | 集成PostGIS扩展,支持地理空间数据类型(点、线、面)、空间索引及空间查询。 |
| 路由算法集成 | 内置pgRouting扩展,提供Dijkstra、A*、最短路径、旅行商问题(TSP)等路径规划算法。 |
| 原生PostgreSQL兼容 | 完全继承官方PostgreSQL镜像的核心功能,包括数据持久化、用户权限管理、网络配置等。 |
| 生产环境适配 | 基于成熟基础镜像构建,通过显式版本控制满足生产环境对稳定性和可追溯性的要求。 |
docker run)bashdocker run -d \ --name pgrouting-instance \ -e POSTGRES_PASSWORD=StrongPassword123 \ # 生产环境必填,建议使用强密码 -p 5432:5432 \ # 映射数据库端口 corpusops/pgrouting-bare:latest # 建议替换为具体版本标签(如14-3.4-13)
为避免版本漂移,生产环境需使用具体版本标签(格式通常为POSTGRESQL_VERSION-pgrouting-PGR_VERSION-postgis-PGIS_VERSION):
bashdocker run -d \ --name pgrouting-instance \ -e POSTGRES_PASSWORD=StrongPassword123 \ -e POSTGRES_DB=gis_route_db \ # 自定义初始数据库名称 -v /host/data/pgrouting:/var/lib/postgresql/data \ # 持久化数据到宿主机 -p 5432:5432 \ corpusops/pgrouting-bare:14-3.4-13 # 示例:PostgreSQL 14 + pgRouting 3.4 + PostGIS 13
yamlversion: '3.8' services: pgrouting: image: corpusops/pgrouting-bare:14-3.4-13 # 固定版本标签 container_name: pgrouting-service restart: unless-stopped # 故障自动恢复 environment: POSTGRES_USER: gis_admin # 自定义管理员用户 POSTGRES_PASSWORD: ${DB_PASSWORD} # 建议通过环境变量注入密码 POSTGRES_DB: city_routing_db # 初始数据库名称 PGDATA: /var/lib/postgresql/data/pgdata # 自定义数据存储路径(可选) volumes: - pgrouting_data:/var/lib/postgresql/data # 命名卷持久化数据 - ./init-scripts:/docker-entrypoint-initdb.d # 挂载初始化脚本(如SQL文件) ports: - "5432:5432" # 宿主机端口:容器端口 volumes: pgrouting_data: # 自动创建的命名卷,独立于容器生命周期
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
POSTGRES_USER | 数据库超级用户名称 | postgres |
POSTGRES_PASSWORD | 超级用户密码(生产环境必填,未设置将无法启动) | 无(必填) |
POSTGRES_DB | 初始化时自动创建的数据库名称 | 与POSTGRES_USER相同 |
PGDATA | 数据库数据存储路径 | /var/lib/postgresql/data |
POSTGRES_INITDB_ARGS | 传递给initdb的额外参数(如字符集配置:--encoding=UTF8 --lc-collate=C) | 无 |
通过-v参数挂载宿主机目录或Docker命名卷,确保容器删除后数据不丢失:
bash# 宿主机目录挂载(需确保权限正确) docker run -v /data/pgrouting:/var/lib/postgresql/data ... # 命名卷挂载(推荐,由Docker管理权限) docker run -v pgrouting_data:/var/lib/postgresql/data ...
容器启动后,可通过psql连接验证pgRouting扩展是否正常安装:
bash# 进入容器内数据库终端 docker exec -it pgrouting-instance psql -U postgres -d city_routing_db # 验证pgRouting扩展 SELECT pgr_version(); # 返回pgRouting版本信息即表示安装成功
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务