簡體   English   中英

使用持久卷啟動PostgreSQL容器[docker compose]

[英]starting postgres container with persistant volume [docker compose]

我的數據庫容器有問題,所以我想將現有的數據庫(從主機)掛載到生成的容器(使用docker-compose)。 我將向您展示yaml文件的重要部分:

postgres:
        image: postgres
        environment:
            POSTGRES_USER: user
            POSTGRES_PASSWORD: pass
        ports:
        - "5432:5432"
        volumes:
        - ./postgres/data:/var/lib/postgresql/data

因此,當我構建並打開docker-compose時,postgres容器退出了:

在此處輸入圖片說明

如果刪除持久性卷,它將無法正常運行! 我也用mysql,mongodb->同樣的問題進行了測試。

你能照亮我嗎?

謝謝。

我解決了這個問題,我想分享。 實際上,為使容器在“ docker-compose up”命令后打開,我們應添加tty和命令參數,例如:

postgres:
        image: postgres
        environment:
            POSTGRES_USER: user
            POSTGRES_PASSWORD: pass
        ports:
        - "5432:5432"
        volumes:
        - ./postgres/data:/var/lib/postgresql/data
        tty: true
        command: /bin/bash

我希望這會有所幫助。

最簡單的方法是命名卷,這些卷也可以在多個服務之間重用,並且可以使用docker命令行輕松檢索和檢查...

  1. 首先創建卷docker volume create db-data
  2. 現在修改您的yml文件
    services
        postgres:
            image: postgres
            environment:
                POSTGRES_USER: user
                POSTGRES_PASSWORD: pass
            ports:
            - "5432:5432"
            volumes:
            - db-data:/var/lib/postgresql/data
    volumes:
       db-data:
  1. 您可以檢查卷docker volume inspect db-data

來源: 撰寫文件參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM