拉取镜像
这个镜像是postgresql版本是11.5
postgis的版本是2.8
docker pull kartoza/postgis:11.5-2.8
docker run --name postgres -e ALLOW_IP_RANGE=0.0.0.0/0 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -e POSTGRES_MULTIPLE_EXTENSIONS=postgis,pgrouting -v /home/pgdata:/var/lib/postgresql/ -p 54321:5432 -d kartoza/postgis:11.5-2.8
-v /home/pgdata:/var/lib/postgresql/ 数据持久化 把数据挂载到宿主机的home/pgdata下
-e POSTGRES_PASSWORD=123456,设置环境变量,指定数据库的登录口令为123456
-e POSTGRES_MULTIPLE_EXTENSIONS='postgis,pgrouting' 启用的插件,还有其他的postgis,hstore,postgis_topology,postgis_raster,pgrouting
-p 54321:5432,端口映射将容器的5432端口映射到外部机器的54321端口;
-e ALLOW_IP_RANGE=0.0.0.0/0,表示允许所有ip访问,如果不加,则只能本机IP访问
在指定数据库下执行下面语句
CREATE EXTENSION postgis
验证:执行下面语句不报错即可
SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText('POINT(-87.71 43.741)',4326)
也可以自己创建想要版本的postgresql
git clone git://github.com/kartoza/docker-postgis
git checkout branch_name
docker build --build-arg POSTGRES_MAJOR_VERSION=13 --build-arg POSTGIS_MAJOR=3 -t kartoza/postgis:POSTGRES_MAJOR_VERSION .
#timescaledb
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE
#timescaledb 版本
SELECT default_version, installed_version FROM pg_available_extensions WHERE name = ‘timescaledb’;
CREATE EXTENSION postgis
CREATE EXTENSION pgrouting
版权声明:本文为weixin_43784341原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。