Docker搭建Postgis,并导入sql
一、拉取Postgresql+postgis镜像
在https://hub.docker.com/r/corpusops/postgis/tags选择需要的版本
docker pull corpusops/postgis:15
二、导出镜像
由于我的服务器不能连外网,需要我在电脑上下载好镜像再上传到服务器上
docker save -o postgis15.tar corpusops/postgis:15
镜像就保存到了当前目录下
三、将镜像导入到服务器中
载入镜像
docker load -i postgis15.tar
查看已有镜像
docker images
创建挂载文件夹
mkdir -p /data/postgres/postgresql/data2
mkdir -p /data/postgres/postgis/data2
四、创建数据库
docker run --name postgis --restart=always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -e ALLOW_IP_RANGE=0.0.0.0/0 -p 5432:5432 -v /data/postgres/postgis/data2:/var/lib/postgis/data -v /data/postgres/postgresql/data2:/var/lib/postgresql/data -d corpusops/postgis:15
五、导入sql文件
将sql文件导入服务器,准备导入docker里的数据库
1.先创建一个数据库
进入容器
docker exec -it postgis bash
将当前root切换成postgres
su postgres
psql -U postgres -W
输入密码成功登入
执行命令创建数据库
CREATE DATABASE Terria;
创建之后退出
\q
exit
exit
2.拷贝sql文件到容器中
docker cp /home/postgres/Terria.sql postgis:/Terria.sql
3.执行语句导入数据库
docker exec -it postgis psql -d terria -U postgres -f /Terria.sql
导入成功
参考docker安装PostgreSQL+PostGiS