docker - windows下使用 postgres, pgAdmin4
访问量: 78
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) , 然后确定好当前的数据库就好, 导入吧,就可以看到屏幕右下角的进度了