镜像: sudo docker pull kartoza/postgis:9.6-2.4
sudo docker run --restart=always --name postgres96 -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d kartoza/postgis:9.6-2.4
-e ALLOW_IP_RANGE=0.0.0.0/0,表示允许所有ip访问,如果不加,则只能本机IP访问
查看postgres数据库版本 select version()
查看数据库编码格式 show server_encoding
查看postgres版本验证是否正常
select version();
sudo docker exec -it xxxxxxxx /bin/bash
安装postgis插件
升级apt-get
sudo apt-get update
安装postgis,目前安装默认安装postgresql9.6对应的postgis
apt-get install postgis
搜索下看扩展是否安装
find /usr -name postgis.control
最后使用navicat 连接postgresql
新建数据库,新建模式postgres
启用扩展
create extension postgis;
函数有这么多,说明postgis 扩展创建成功了。
测试是否启用成功
select postgis_full_version();
将postgres 内的文件复制到服务器的磁盘内,进行映射
sudo mkdir -p /opt/appdata/mypostgres
复制容器内 文件-到服务器本地 ,(容器名):容器内文件目录 服务器磁盘目录
sudo docker cp postgres(容器名):/var/lib/postgresql/9.6/main /opt/appdata/mypostgres
sudo docker cp postgres(容器名):/usr/lib/postgresql/9.6/lib /opt/appdata/mypostgres
最后是在 将磁盘目录 映射到容器内
默认连接数是100 ,如果连接数不够,可以修改
容器内的【/etc/postgresql/9.6/main】下面的 postgresql.conf
复制容器内的文件夹到 磁盘内
docker cp mypostgres:/etc/postgresql/9.6/main /data/postgres/someconf/
这边映射下路径, /data/postgres/someconf 服务器的目录
/etc/postgresql/9.6/main 容器内的目录
修改 max_connections = 1000
==============================
方式二安装:
docker pull postgis/postgis:11-3.2 docker run -itd --name postgres01 --restart=always -p 5432:5432 -e POSTGRES_PASSWORD='postgres' -e PGDATA=/var/lib/postgresql/data/pgdata -v /root/data/docker-data/postgres01:/var/lib/postgresql/data postgis/postgis:11-3.2
需要so
/usr/lib/postgresql/11/lib/st_geometry.so拷贝st_geometry.so 文件到容器内部:
docker cp /data/postgres01/st_geometry.so postgres01:/usr/lib/postgresql/11/lib/
create extension postgis;
select * from pg_extension;
Postgre SQL修改字段类型语法
ALTER table 表名 ALTER COLUMN 字段名 type 字段类型 USING 字段名::字段类型 ALTER table test_table ALTER COLUMN test_column type double precision USING test_column ::double precision ALTER table test_table ALTER COLUMN gemo type "sde"."st_geometry" USING shape ::"sde"."st_geometry"
修改最大链接数据
如果不想关闭空闲链接,可以增加最大链接数
postgres=# show max_connections;
postgres=# alter system set max_connections=1000;