从容器到主机的Postgres数据路径映射-主机上的数据目录为空

时间:2019-01-04 11:36:56

标签: php postgresql docker docker-compose

我正在docker容器中配置postgres,当我将/ var / lib / postgresql / data映射到项目目录中的目录./data时,该目录被锁定并且为空。

我正在docker容器中检查此目录,并且所有文件都包含在其中。

当我将数据映射到虚拟卷时,一切正常pgsql:/ var / lib / postgresql / data

这很好:

version: "3"

volumes:
    pgsql: ~
    mongo: ~

...
    pgsql:
        container_name: "pgsql"
        hostname: "pgsql"
        image: "postgres:9.5"
        volumes:
            - "pgsql:/var/lib/postgresql/data"
        environment:
            - "POSTGRES_DB=${DB_NAME}"
            - "POSTGRES_USER=${DB_USER}"
            - "POSTGRES_PASSWORD=${DB_PASS}"
        ports:
            - "5432:5432"

但是当我这样做

version: "3"

volumes:
    pgsql: ~
    mongo: ~

...
    pgsql:
        container_name: "pgsql"
        hostname: "pgsql"
        image: "postgres:9.5"
        volumes:
            - "./data:/var/lib/postgresql/data"
        environment:
            - "POSTGRES_DB=${DB_NAME}"
            - "POSTGRES_USER=${DB_USER}"
            - "POSTGRES_PASSWORD=${DB_PASS}"
        ports:
            - "5432:5432"

主机上的数据目录为空。

我记得同一件事在MySQL中也起作用,我想将数据映射到物理目录的原因是我想在生产环境中使用docker,并且我想将数据存储在虚拟卷以及目录中

预先感谢

0 个答案:

没有答案