01 基于Docker(Compose)部署PostGIS
一 环境要求
- Docker环境
- Docker-Compose容器编排工具
- 联网或者具有本地镜像
二 docker-compose
version: '3'
services:
postgis:
image: kartoza/postgis # 使用 postgis/postgis 镜像
container_name: postgis
restart: always # 出现错误时自动重启
environment: # 设置环境变量
# POSTGRES_DB: mydatabase # 数据库名为 mydatabase
POSTGRES_USER: root # 用户名
POSTGRES_PASSWORD: 123456 # 密码
ALLOW_IP_RANGE: 0.0.0.0/0
ports:
- "5432:5432" # 将本地端口 5432 映射到容器内的 5432 端口
volumes: # 将本地目录映射到容器内的目录
- ./postgis:/var/lib/postgresql # 将本地 data 目录映射到容器内的 /var/lib/postgresql/data 目录
networks:
- net_postgis # 使用指定声明的网咯
# 声明网络,在外部容器中可进行链接(link)来达到在其他容器中使用postgis容器(所在的网络)
networks:
net_postgis:
建议目录组织:

三 启动容器
# 进入到编排目录
$ cd COMPOSE-POSTGIS
# 启动
$ docker-compose up -d
四 为新建数据库添加扩展
postgis中可以创建不同扩展,例如:
- CREATE EXTENSION postgis;
- CREATE EXTENSION postgis_topology;
- CREATE EXTENSION fuzzystrmatch;
- CREATE EXTENSION postgis_tiger_geocoder;
- CREATE EXTENSION address_standardizer;
这些不同扩展的作用如下:
- postgis 扩展是 PostGIS 的核心扩展,提供了处理空间数据的基本功能,包括空间数据类型、空间索引、空间函数等。
- postgis_topology 扩展是用于拓扑数据处理的扩展,提供了拓扑关系的建立和管理功能,支持拓扑网络、道路网络等应用。
- fuzzystrmatch 扩展是模糊字符串匹配扩展,提供了模糊字符串匹配算法和函数,支持模糊搜索、模糊匹配等应用。
- postgis_tiger_geocoder 扩展是用于美国地址地理编码的扩展,提供了美国地址数据的地理编码功能,支持地址解析、地址匹配等应用。
- address_standardizer 扩展是用于地址标准化的扩展,提供了地址标准化、地址规范化等功能,支持多种地址格式和标准。 这些扩展提供了一些额外的功能,可以根据具体的业务需求进行选择和安装。例如,如果需要进行地址地理编码,则需要安装 postgis_tiger_geocoder 扩展;如果需要进行地址标准化,则需要安装 address_standardizer 扩展。这些扩展可以通过 CREATE EXTENSION 命令进行创建和安装。
当我们要进行gis空间数据存储和一些基本应用时,仅需要添加核心扩展即可:


浙公网安备 33010602011771号