如何使用docker-compose.yml版本“1”安装和运行PostgreSQL

3

1: docker-compose.yml

postgres96:
  image: postgres:9.6
  ports:
    - "5432:5432"
  volumes:
    - ./Postgres/data:/var/lib/postgresql/data
  env:    
    POSTGRES_PASSWORD: admin@123
    POSTGRES_USER: postgres

2) $ docker-compose up &

postgres96_1      | LOG:  database system was not properly shut down; automatic recovery in progress
postgres96_1      | LOG:  invalid record length at 0/1570D50: wanted 24, got 0
postgres96_1      | LOG:  redo is not required
postgres96_1      | LOG:  MultiXact member wraparound protections are now enabled
postgres96_1      | LOG:  database system is ready to accept connections
postgres96_1      | LOG:  autovacuum launcher started

但是,当在Windows上从pg-admin-iv测试时,它显示'用户postgress没有密码'

那么YML文件中的流程是否正确,我只想简单地将postgress升级并将数据放在docker容器之外,如何做到这一点?

1个回答

4

我会使用命名卷来代替托管映射卷:

postgres96:
  image: postgres:9.6
  ports:
    - "5432:5432"
  volumes:
    - data:/var/lib/postgresql/data
  environment:    
    POSTGRES_PASSWORD: admin@123
    POSTGRES_USER: postgres

你的文件夹可能存在权限问题。

你的数据保存在容器外的一个卷中。请使用以下命令进行检查:

docker volume ls

还可以使用docker-compose:

docker-compose up -d

使用 & 代替

docker-compose logs -f

以下是我的日志的最后一部分,供您参考:

postgres96_1  | PostgreSQL init process complete; ready for start up.
postgres96_1  |
postgres96_1  | LOG:  database system was shut down at 2016-11-14 21:05:51 UTC
postgres96_1  | LOG:  MultiXact member wraparound protections are now enabled
postgres96_1  | LOG:  database system is ready to accept connections
postgres96_1  | LOG:  autovacuum launcher started
postgres96_1  | LOG:  incomplete startup packet

致敬


嗨@Carlos,感谢您的回复,我按照您建议的更改了,但默认的“postgres”用户没有权限创建新数据库,那么在docker-compose.yml中需要添加或遵循哪些其他事项呢?假设在postgress容器启动后,我们必须执行DB操作,例如创建新的DB等等... - Dhairya
你好,我从yml文件中删除了postgres_user和postgres_password,现在我能够创建新的数据库和表,但是所有数据都存储在'pg_stat_tmp'目录中,该目录位于进度数据文件夹中,那么如何交叉检查数据是否存储在docker容器外,并且新数据已添加到数据库等等...? - Dhairya
你好,销毁容器 docker-compose down -v,它将会把容器和卷一起销毁,但命名的卷不会被删除。然后使用 docker-compose up -d 创建一个新的容器,这样你应该能在其中看到你的表格。 - Carlos Rafael Ramirez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接