相关疑难解决方法(0)

如何将PostgreSQL容器与现有数据一起使用?

我正在尝试设置PostgreSQL容器(https://hub.docker.com/_/postgres/).我有一些来自当前PostgreSQL实例的数据.我将其复制/var/lib/postgresql/data并希望将其设置为PostgreSQL容器的卷.

我是关于PostgreSQL的docker-compose.yml文件的一部分:

db:
    image: postgres:9.4
    ports:
        - 5432:5432
    environment:
        POSTGRES_PASSWORD: postgres
        POSTGRES_USER: postgres
        PGDATA : /var/lib/postgresql/data
    volumes:
        - /projects/own/docker_php/pgdata:/var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

当我做docker-compose时,我收到这条消息:

db_1  | initdb: directory "/var/lib/postgresql/data" exists but is not empty
db_1  | If you want to create a new database system, either remove or empty
db_1  | the directory "/var/lib/postgresql/data" or run initdb
db_1  | with an argument other than "/var/lib/postgresql/data".
Run Code Online (Sandbox Code Playgroud)

我试图从容器中创建自己的图像,所以我的Dockerfile是:

FROM postgres:9.4
COPY pgdata /var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

但是我得到了同样的错误,我做错了什么?

更新

我使用pg_dumpall获取SQL并将其放在/docker-entrypoint-initdb.d中,但每次执行此文件都会执行docker-compose up.

postgresql docker

38
推荐指数
2
解决办法
3万
查看次数

标签 统计

docker ×1

postgresql ×1