Docker Windows下使用postgrespgadmin4
refer to: https://stackoverflow.com/questions/57192475/postgresql-in-a-docker-container-on-windows-how-to-persist-data-to-a-local-wind/72021286#72021286
docker postgres官方: https://stackoverflow.com/questions/57192475/postgresql-in-a-docker-container-on-windows-how-to-persist-data-to-a-local-wind/72021286#72021286
1. 安装docker
注意:如果之前运行过同级目录下的 docker-compose, 记得要在desktop docker中把对应项目删除!否则会产生干扰的效果。
注意2: 如果出现修改docker-compose,删除docker image/container之后仍然安装启动遇到role not exists等问题的话,就重新启动windows!!

2. 创建文件 docker-compose.yml
ENV PGDATA=/var/lib/postgresql/data
version: '3'
services:
postgres9.5:
container_name: "postgres9.5"
image: postgres:9.5
volumes:
- /g/workspace/docker_folder/postgres9.5:/var/lib/postgresql/data
command: 'tail -F /dev/null'
# command: 'postgres'
ports:
- "5432:5432"
stdin_open: true
tty: true
environment: #这些内容仅在第一次创建docker的时候有用
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=88888888
3. 登陆docker, 看一下它的配置文件:
root@73138b28d44b:/var/lib/postgresql/data# ls base pg_clog pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION postgresql.auto.conf postmaster.opts global pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_xlog postgresql.conf
看一下postgresql.conf 发现这些都不用改。 port = 5432 可以通过docker 映射
listen_address = '*' port = 5432
看一下pg_hba.conf
host all all all trust , 反正是开发机器。
4. 创建数据库
docker exec -it xxx bash
su postgres
createdb <db name>
5. 创建用户
createuser --interactive --pwprompt
运行后的样子如下:

下载并安装 pg_admin4
然后运行,记得首次进入的时候问一个master密码,设置成88888888即可。算是每次启动pg_admin时候的密码,不是访问数据库的密码。

如何执行SQL语句
需要鼠标右键到对应的schema下,然后点击query tool

还原( restore )

选择好对应的文件(xx.dump) , 然后确定好当前的数据库就好, 导入吧,就可以看到屏幕右下角的进度了