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:

建议目录组织:
image.png

三 启动容器

# 进入到编排目录
$ cd COMPOSE-POSTGIS

# 启动
$ docker-compose up -d

四 为新建数据库添加扩展

postgis中可以创建不同扩展,例如:

  1. CREATE EXTENSION postgis;
  2. CREATE EXTENSION postgis_topology;
  3. CREATE EXTENSION fuzzystrmatch;
  4. CREATE EXTENSION postgis_tiger_geocoder;
  5. CREATE EXTENSION address_standardizer;

这些不同扩展的作用如下:

  1. postgis 扩展是 PostGIS 的核心扩展,提供了处理空间数据的基本功能,包括空间数据类型、空间索引、空间函数等。
  2. postgis_topology 扩展是用于拓扑数据处理的扩展,提供了拓扑关系的建立和管理功能,支持拓扑网络、道路网络等应用。
  3. fuzzystrmatch 扩展是模糊字符串匹配扩展,提供了模糊字符串匹配算法和函数,支持模糊搜索、模糊匹配等应用。
  4. postgis_tiger_geocoder 扩展是用于美国地址地理编码的扩展,提供了美国地址数据的地理编码功能,支持地址解析、地址匹配等应用。
  5. address_standardizer 扩展是用于地址标准化的扩展,提供了地址标准化、地址规范化等功能,支持多种地址格式和标准。 这些扩展提供了一些额外的功能,可以根据具体的业务需求进行选择和安装。例如,如果需要进行地址地理编码,则需要安装 postgis_tiger_geocoder 扩展;如果需要进行地址标准化,则需要安装 address_standardizer 扩展。这些扩展可以通过 CREATE EXTENSION 命令进行创建和安装。

当我们要进行gis空间数据存储和一些基本应用时,仅需要添加核心扩展即可:
image.png
image.png

posted @ 2023-05-17 09:07  billy_gisboy  阅读(729)  评论(0)    收藏  举报  来源