场景
CentOS中使用Docker部署带postgis的postgresql:
CentOS中使用Docker部署带postgis的postgresql_centos postgis插件在容器中如何安装-CSDN博客
上面使用Docker搜索和拉取kartoza/postgis时并没有任何限制。
当下如果不能科学上网时,大部分镜像源已失效。需自行想办法科学上网或更换可用镜像源。
下面进行kartoza的更多介绍,文末附相应13版本的镜像下载,可直接使用镜像导入命令将其导入。
导入导出参考如下:
Docker在服务器之间怎样导入导出镜像(服务器之间容器复制):
Docker在服务器之间怎样导入导出镜像(服务器之间容器复制)_a服务器拉起b服务器镜像-CSDN博客
注:
博客:
霸道流氓气质-CSDN博客
实现
kartoza/docker-postgis
github地址:
GitHub - kartoza/docker-postgis: Dockerfile for postgis
gitcode加速地址带中文翻译:
简介:
一个简单的 Docker 容器,用于运行 PostGIS
访问我们在 Docker Hub 的页面:https://hub.docker.com/r/kartoza/postgis/
这里有许多其他的 Docker PostGIS 容器。此容器的特点是:
开箱即用提供 SSL 支持并强制客户端使用 SSL 连接
连接限制为 Docker 子网
默认为您创建名为"gis"的数据库,因此您可以直接使用此容器(例如与 QGIS 配合)"开箱即用"
包含流式复制和逻辑复制支持(默认关闭)
启动容器时创建多个数据库的能力。
启动容器时创建多个模式的能力。
设置时启用数据库中的多个扩展。
自动为 pg raster 注册 Gdal 驱动程序。
支持外部数据库栅格。
基础教程:
Alex Urquhart 博客上有一篇关于如何使用此 Docker 图像的很好的"从零开始"教程
https://alexurquhart.com/post/set-up-postgis-with-docker/
如果您刚开始接触 docker、PostGIS 和 QGIS,我们建议您阅读并尝试博客上的说明。
Docker Compose方式运行带postgis的posrgresql的镜像kartoza/docker-postgis
在服务器上某目录下新建docker-compose.yaml文件,修改文件内容为如下
version: "3.8"
services:
postgis:
image: kartoza/postgis:13
container_name: badao_postgis
ports:
- "5432:5432"
volumes:
- ./postgis/data:/var/lib/postgresql
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ALLOW_IP_RANGE: 0.0.0.0/0
logging:
driver: "json-file"
options:
max-size: "500m"
max-file: "3"
然后在此目录下新建/postgis/data目录用来做数据源映射。
上面的环境变量配置分别为用户名、密码和允许连接的ip范围,这里为允许所有。
更多环境变量配置参考上面官方文档说明
然后下面的日志的配置是为了配置该容器的大小限制为500MB,并且可以最多有3个日志文件,当达到这些限制时,旧的日志文件将
被覆盖或轮换。这里的日志配置不是必须的,依照自己需求而定。
然后这里使用的镜像版本为13版本。
其版本可以对应github上的分支对应
关于docker-compose的文件写法,官网提供了模板和示例
docker-pg-backup/docker-compose.yml at master · kartoza/docker-pg-backup · GitHub
镜像拉取
如果能拉取相应的镜像,可以通过如下命令
docker pull kartoza/postgis:13
如果不能拉取,文末提供下载地址,并参考镜像导入。
文末提供为使用docker导出的镜像,可直接导入
启动容器
在yaml所在目录下执行
docker compose up
运行无报错,则启动成功,使用数据库连接工具连接测试。
可以看到已经集成了postgis。
postgis的posrgresql的镜像kartoza/docker-postgis下载地址
https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/89765536