docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker部署PostgreSQL+PostGIS服务

Docker部署PostgreSQL+PostGIS服务的实现

作者:MatrixExplore

本文介绍了如何使用Docker快速部署PostgreSQL,并手动安装PostGIS模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

引言

在进行空间数据开发、GIS 数据处理或数据科学任务时,PostgreSQL 是一款非常受欢迎的开源数据库,而其扩展模块 PostGIS 更是为其带来了强大的地理空间支持。
本文将介绍如何使用 Docker 快速部署 PostgreSQL,并手动安装 PostGIS 模块,实现一个可持久化的空间数据库服务。

为什么选择 Docker 部署 PostgreSQL?
Docker 可以让我们以容器化方式快速启动数据库服务,避免繁琐的环境配置过程,具有如下优点:

接下来我们就一步步完成部署!

拉取镜像

使用 docker pull 命令从 Docker Hub 拉取 PostgreSQL 官方镜像,这里我们以最新的 16 版本为例:

docker pull postgres:16.2

运行容器

方法1:docker直接运行

通过以下命令运行 PostgreSQL 容器,并进行以下设置:

docker run -d \
  --name postgres \
  -e POSTGRES_PASSWORD=123456 \
  -v /opt/postgres/data:/var/lib/postgresql/data \
  -p 5432:5432 \
  postgres:16.2

⚠️ 注意事项:

方法2:docker-compose

services:
  postgres:
    image: postgres:16.2
    container_name: postgres
    restart: unless-stopped
    ports:
      - "5432:5432"
    volumes:
      - /opt/postgres/data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: 123456
docker-compose up -d

安装PostGIS模块

PostGIS 并不默认包含在 PostgreSQL 镜像中,因此需要我们手动进入容器并安装。

  1. 进入容器:
docker exec -it postgres /bin/bash
  1. 更新 apt 包索引:
apt-get update

这里如果用国内源会速度快些

tee /etc/apt/sources.list.d/debian.sources >/dev/null <<'EOF'
Types: deb
URIs: http://mirrors.aliyun.com/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://mirrors.aliyun.com/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
  1. 安装 PostGIS 模块:
apt-get install -y postgis postgresql-16-postgis-3

postgresql-16-postgis-3 是对应 PostgreSQL 16 的 PostGIS 模块名称
如果你使用其他版本,请根据版本号调整命令

  1. 验证PostGIS是否成功安装:
psql -U postgres
psql -U postgres -d your_database
CREATE EXTENSION postgis;
SELECT PostGIS_Version();
postgis_version
-------------------
3.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1

直接部署PostGIS容器

当然,我们也可以采用dockerhub上的PostGIS镜像来进行部署。

docker pull postgis/postgis:11-3.3
docker run --restart=always -d --name postgis \
-p 5432:5432 \
-v /mnt/data/docker/volumes/postgis/data/:/var/lib/postgresql/data/ \
-e POSTGRES_PASSWORD=123456 postgis/postgis:11-3.3

总结

通过本文,我们已经完成了使用Docker快速部署PostgreSQL16,并且实现数据持久化挂载,同时安装并验证PostGIS模块。
后续我们可以:
使用 pgAdmin 可视化管理工具连接容器数据库,并进行一系列的数据库操作啦。
如果在安装过程中遇到任何问题,欢迎留言交流。

到此这篇关于Docker部署PostgreSQL+PostGIS服务的实现的文章就介绍到这了,更多相关Docker部署PostgreSQL+PostGIS服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文