来自Docker系统中主机的PostgreSQL PGDATA

来自Docker系统中主机的PostgreSQL PGDATA,postgresql,docker,docker-compose,Postgresql,Docker,Docker Compose,我想用docker compose运行一个webapp。我有一个运行postgresql和docker引擎的centos7主机。我的docker compose包含一个postgresql映像,应该与主机系统中的PGDATA一起运行。但每次我运行docker compose时都会出现错误: initdb:directory“/var/lib/docker-postgresql”存在但不是空的 postgresql数据库的docker compose部分如下所示: db: build: .

我想用docker compose运行一个webapp。我有一个运行postgresql和docker引擎的centos7主机。我的docker compose包含一个postgresql映像,应该与主机系统中的PGDATA一起运行。但每次我运行docker compose时都会出现错误:

initdb:directory“/var/lib/docker-postgresql”存在但不是空的

postgresql数据库的docker compose部分如下所示:

db:
    build: ./postgres/
    container_name: ps01
    volumes:
      - ./postgres:/tmp
      - /var/lib/pgsql/9.4:/var/lib/docker-postgresql    
    expose:
      - "5432"
    environment:
      PGDATA: /var/lib/docker-postgresql
FROM postgres:latest

ENV POSTGIS_MAJOR 2.3
ENV POSTGIS_VERSION 2.3.1+dfsg-1.pgdg80+1 

RUN apt-get update \
      && apt-get install -y --no-install-recommends \
           postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
           postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION \
           postgis=$POSTGIS_VERSION \
      && rm -rf /var/lib/apt/lists/*
我将Docker Postgresql应用程序中的/var/lib/pgsql/9.4装载到/var/lib/Docker Postgresql,并将此路径设置为PGDATA-ENV

/postgres/中的Dockerfile如下所示:

db:
    build: ./postgres/
    container_name: ps01
    volumes:
      - ./postgres:/tmp
      - /var/lib/pgsql/9.4:/var/lib/docker-postgresql    
    expose:
      - "5432"
    environment:
      PGDATA: /var/lib/docker-postgresql
FROM postgres:latest

ENV POSTGIS_MAJOR 2.3
ENV POSTGIS_VERSION 2.3.1+dfsg-1.pgdg80+1 

RUN apt-get update \
      && apt-get install -y --no-install-recommends \
           postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
           postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts=$POSTGIS_VERSION \
           postgis=$POSTGIS_VERSION \
      && rm -rf /var/lib/apt/lists/*
我应该如何从主机共享我的Postgres数据