【问题标题】:How to delete postgres database within docker container如何在 docker 容器中删除 postgres 数据库
【发布时间】:2019-09-23 16:47:04
【问题描述】:

我正在尝试弄清楚如何完全删除带有 postgres 数据库的 docker 容器并使用 docker-compose 进行重建?

我使用 docker-compose 创建了一个服务器和数据库容器。数据库没有按照我想要的方式设置,所以我想删除数据库并重建。我假设最简单的解决方案,因为它是全新的,将停止容器运行,删除容器,然后再次运行 docker-compose。

我已按照这些步骤操作,没有看到任何容器。我没有看到与容器关联的任何卷。但是,当我运行 docker-compose 时,它​​似乎正在使用之前创建的 postgres 数据库?

这是我的 docker-compose 文件包含的内容,其中提取了用户/密码/数据库名称。

services:
  server:
    image: "node:10"
    user: "node"
    working_dir: /home/node/app
    volumes:
      - ./:/home/node/app
    ports:
      - 3030:3030
    command: "npm start"
    depends_on:
      - db
  db:
    image: postgres:latest
    restart: always
    environment:
      POSTGRES_USER: [user] 
      POSTGRES_PASSWORD: [password]
      POSTGRES_DB: [db_name]
    volumes:
      - ./data/postgres:/var/lib/postgresql/data

我希望通过使用:

docker stop [container] 停止容器,然后 docker rm [container] 移除容器

我可以用 docker-compose up 重新构建

【问题讨论】:

    标签: postgresql docker docker-compose


    【解决方案1】:

    您可以使用以下命令列出 docker 使用的卷:

    docker volume ls
    

    然后,如果需要,您可以检查卷以找到您的数据库使用的卷:

    docker volume inspect xyzvolumename
    

    找到数据库使用的卷后,将其删除以重新开始:

    docker volume rm locatedvolumename
    

    【讨论】:

      【解决方案2】:

      Docker stopdocker rm 将无法工作,直到您从 docker-compose 中删除绑定装载卷。

      从你的 docker-compose 中删除它

           - ./data/postgres:/var/lib/postgresql/data
      
      

      或从主机目录中删除所有内容

      ./data/postgres
      

      【讨论】:

      猜你喜欢
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 2020-11-21
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多