为什么我的 PostgreSQL 数据没有在 Docker 中使用卷持久化?

问题描述

我目前正在学习如何使用 Flask、PostgreSQL 和 Docker,因为我正在尝试开发一个网络应用程序。

我为开发阶段创建了两个容器:一个用于数据库,另一个用于 Web。我遇到的问题是,每当我停止并重新启动容器时,数据就不再存在了。

为了创建容器,我点击了以下链接:https://testdriven.io/blog/dockerizing-flask-with-postgres-gunicorn-and-nginx/#project-setup

我已经看到我可以创建一个卷来将数据保存在容器中,但它似乎不起作用,我真的不明白为什么。这是我的 docker-compose 文件:

version: '3.7'

services:
 web:
   build: ./services/web
   restart: always
   command: python manage.py run -h 0.0.0.0
   volumes:
     - ./services/web/:/usr/src/app/
     - ./migrations:/usr/src/app/migrations
   ports:
     - 5000:5000
   env_file:
     - ./dev.env
   depends_on:
     - db
 db:
   container_name: postgres
   restart: always
   image: postgres:latest
   volumes:
     - pgdata:/var/lib/postgresql/data
     - .:/usr/src/app #For refreshing the container if the code changes
   ports: 
     - 5432:5432
   environment:
     - POSTGRES_USER=hello_flask
     - POSTGRES_PASSWORD=hello_flask
     - POSTGRES_DB= hello_flask_dev #To change

volumes:
 pgdata:

我很小心地使用 docker-compose up -d,所以我没有删除任何卷,并且使用 docker volume inspect 创建了以下卷:

[
    {
        "CreatedAt": "2021-04-19T13:19:05Z","Driver": "local","Labels": {
            "com.docker.compose.project": "hera_docker","com.docker.compose.version": "1.29.0","com.docker.compose.volume": "pgdata"
        },"Mountpoint": "/var/lib/docker/volumes/hera_docker_pgdata/_data","Name": "hera_docker_pgdata","Options": null,"Scope": "local"
    }
]

我想维护 docker-compose 命令,因为这两个容器在一个多容器中。

任何帮助都会有很大帮助。我在这个论坛上检查了一些其他问题,但我真的不知道发生了什么,我的不工作。

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)