Back

docker - windows下使用 postgres, pgAdmin4

发布时间: 2022-04-26 22:40:00

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 )

选择好对于那个的server,

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

Back