目录
一、去docker仓库查找你想要安装的镜像版本,并pull下来
docker仓库 :https://hub.docker.com/r/postgis/postgis/tags
下面是我下载的版本
docker pull postgis/postgis:12-3.2
二、运行容器
docker run --name postgis --privileged=true --restart=always -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=gis_db -p 5433:5432 -v /docker/postgis/data:/var/lib/postgis/data -v /docker/postgresql/data:/var/lib/postgresql/data -d postgis/postgis:12-3.2
参数说明:
--name 容器名
POSTGRES_USER 超级用户(不指定的话,默认postgres)
POSTGRES_PASSWORD 超级用户的密码(必须的参数,并且不能为空,否则容器将会处于Restarting状态)
POSTGRES_DB 如果在创建容器时没有使用该变量,则创建
POSTGRES_USER
对应的同名数据库(注意:如果POSTGRES_DB和POSTGRES_USER都显式声明的话,不要设置成一样的,否则psql连不上)
如果容器启动不起来,查看日志命令:
docker logs --since 30 容器名
三、创建数据库,导入数据
将宿主机的sql文件拷贝到容器内部
docker cp /home/public.sql postgis:/home/public.sql
进入容器终端
docker exec -it 容器名 bash
切换postgres用户
su postgres
进入psql终端(postgres表示进入postgres数据库)
psql postgres
在psql命令行 创建public数据库
create database public;
查看全部数据库
\l
在psql命令行 切换public数据库(\c 表示connet)
\c public
在psql命令行 执行sql导入数据
\i /home/public.sql
查看导入的表
select * from pg_tables;
四、修改数据库密码
进入psql命令行,输入以下命令
alter user postgres with password '123456';
退出psql
\q
退出容器
ctrl + d