赞
踩
要按照公司已有的postgresql重新搭建一套数据库,查看原有版本,PostgreSQL是10.5,PostGiS是2.4.5,然后查了些资料,docker内安装postgres:10.5,然后再容器内安装postgis插件,因为公司服务器是离线环境,所以打算先在阿里云服务器上安装配置好,再将容器打包成镜像,移植到的离线服务器,然后整整安装了两天,踩了各种坑,也没安装成功。
踩坑方案一:docker安装postgres:10.5,然后通过导入postgis2.4.5包进行安装,已失败告终。
踩坑方案二:docker安装postgres:10.5,然后通过apt-get安装postgres-10-postgis-2.4,因切换了各种源(阿里、163、清华)都没有10-2.4版本,失败
搞了整整两天,头昏脑胀,也没成功,然后,突然在csdn上看到了一篇文章Docker 环境安装postgres+postgis扩展原来,直接docker安装postgis就可以了............ mmp
(我这里选择的是第一个corpusops/postgis,推荐postgis/postgis,里面没有我需要的10-2.4)
依次点击corpusops/postgis->Tags,将Sort by选为A-Z,可以看到下面有若干个版本,选择10-2.4
从IMAGE LAYERS内可以看到,该镜像源对应的postgres和postgis版本
复制pull命令,在阿里云服务器上执行
docker pull corpusops/postgis:10-2.4
在服务器上创建数据卷映射文件夹
- mkdir -p /data/postgres/postgresql/data
- mkdir -p /data/postgres/postgis/data
docker run --name postgis_postgres --restart=always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -e POSTGRES_DBNAME=gis_db -p 5432:5432 -v /data/postgres/postgis/data:/var/lib/postgis/data -v /data/postgres/postgresql/data:/var/lib/postgresql/data -d corpusops/postgis:10-2.4
参数说明:
- docker run
- --name postgis_postgres # 创建容器名称
- --restart=always #自动启动
- -e POSTGRES_USER=postgres #postgresql 用户名
- -e POSTGRES_PASSWORD=123456 #postgresql 密码
- -e POSTGRES_DBNAME=gis_db #添加环境变量
- -p 5432:5432 # 占用服务器端口:docker内部虚拟端口
- -v /data/postgres/postgis/data:/var/lib/postgis/data #postgis数据卷映射到本地环境
- -v /data/postgres/postgresql/data:/var/lib/postgresql/data #postgresql数据卷映射到本地环境
- -d corpusops/postgis:10-2.4 #使用的镜像名称:版本
(需要将服务的5432端口打开)
pgadmin4请访问pgadmin官网下载地址自行下载安装,需要注意的是pgadmin4无法连接老版本的pg数据库,比如我安装的macOS pgAdmin 4 v6.21 连接postgres:9.6会报如下错误:
打开安装好的pgadmin4
需要先设置软件主密码(不是连接数据库的密码),随意设置 ,记得住就好,每次使用pgadmin需要输入,比如我设置的123456
设置好之后,依次点击
输入连接配置,名称自定义
可以看到连接的pg数据库中包含一个名为postgres的数据库,该库为pg默认创建的,在扩展下除了postgis外,还包含了其它几个插件,这是这个镜像源自带的
右键点击postgis-》CREATE脚本
复制改create命令
- -- Extension: postgis
-
- -- DROP EXTENSION postgis;
-
- CREATE EXTENSION IF NOT EXISTS postgis
- SCHEMA public
- VERSION "2.4.4";
创建数据库
添加postgis
将刚才复制的create命令复制到查询窗口
查看test数据库,可以看到已经安装好了postgis和其中的函数、类型、默认表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。