拉取镜像
这个镜像是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 -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 -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
docker build --build-arg POSTGRES_MAJOR_VERSION=13 --build-arg POSTGIS_MAJOR=3 -t kartoza/postgis:POSTGRES_MAJOR_VERSION .



