PostGIS是个开源的软件,是 Postgres数据库的一款扩展插件,主要用于实现空间数据库,提供了存储空间地理数据的支持,能够进行空间数据管理、数量测量与几何拓扑分析。
因工作需要用到QGIS软件,为了避免每次都要到一次工参的麻烦,又不想在本地笔记本电脑上安装数据库软件,因此打算在openEuler的Docker上安装个PostGIS,方便日常工作使用。
本文主要参考了这位大佬的文档,非常感谢作者的分享。
https://juejin.cn/post/6844903661886242824
Docker上安装PostGIS
1、创建本地文件
命令:mkdir postgre_data && cd postgre_data
2、安装PostGIS
大佬的命令:
docker run --name=postgis -d -e POSTGRES_USER=sde -e POSTGRES_PASS=sde -e POSTGRES_DBNAME=gis -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v /root/postgre_data:/var/lib/postgresql --restart=always kartoza/postgis:9.6-2.4
大佬的命令在执行后,容器启动后无端口信息,无端口绑定,docker也无法访问,Google一下,有人建议将端口映射命令放在 --name= 前面 也就是一下的命令形式
docker run -p 5432:5432 --name=postgis -d -e POSTGRES_USER=sde -e POSTGRES_PASS=sde -e POSTGRES_DBNAME=gis -e ALLOW_IP_RANGE=0.0.0.0/0 -v /root/postgre_data:/var/lib/postgresql --restart=always kartoza/postgis:9.6-2.4
按照这种方式Pull镜像后,还是无法正常运行,没有端口绑定信息。
查看log信息发现提示:initdb: could not access directory "/var/lib/postgresql/9.6/main": Permission denied
提示无目录访问权限,查看data的目录权限
修改下目录权限,再重启docker,就可以正常绑定端口了。