【问题标题】:How to make persistent storage with docker-compose up-down-up?如何使用 docker-compose up-down-up 制作持久存储?
【发布时间】:2016-08-28 20:05:45
【问题描述】:

我有一个多容器应用程序,它使用 docker-compose.yml 文件中的 postgres 图像。 Postgres 容器在主机上有卷用于持久存储。

当我第一次运行 docker-compose up 时,一切都很好,postgres 在我的主机文件夹中创建 db 文件。 之后,如果我要更改 Web 容器的代码,我需要使用 docker-compose down 暂时关闭应用程序。

当我第二次运行 docker-compose up 时,postgres 会覆盖所有 db 文件,但我需要这些数据不要更改。我该如何解决这个问题?

我的 docker-compose.yml

version: '2'

services:
    web:
      build: ./web
      command: python3 main.py
      volumes:
        - ./web:/app
      ports:
        - "80:80"  
      depends_on:
        - db
        - redis
      links:
        - db:db
        - redis:redis

    db:
      image: postgres
      ports:
        - "5432:5432"     
      environment:
        - POSTGRES_PASSWORD:0000
      volumes:
        - ./pgdb:/var/lib/postgresql/data

    redis:
      image: redis
      ports:
        - "6379:6379" 
      command: redis-server --appendonly yes  
      volumes:
        - ./redisdb:/data

【问题讨论】:

  • 我解决了这个问题。这可能是因为我使用主机 root 用户更改了 pgdb 目录的权限。默认情况下,我无法在主机中打开 pgdb,因为所有者是 postgres 用户。我可能是错的,但是在我停下来更改问题的解决方案之后就消失了。
  • 为您自己的帖子添加答案,以便您可以关闭它。其他人可能对此解决方案感兴趣。

标签: postgresql docker docker-compose


【解决方案1】:

我解决了这个问题。这可能是因为我用主机 root 用户更改了 pgdb 目录的权限。默认情况下,我无法在主机中打开 pgdb,因为所有者是 postgres 用户。我可能是错的,但在我停下来更改分辨率后,问题就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多