为什么不是我的postgres泊坞窗容器安装数据库?

所以我有两个用于托pipepostgres服务器的docker镜像。 一个是第一次设置,并将一个.sh和.sql脚本放到相应的目录中,以便将它们加载(这可以像预期的那样工作)。 第二个图像用于在数据库已经创build的任何其他时间运行。 这些泊坞窗文件看起来像这样:

FROM postgres:9.3 RUN mkdir -p /etc/postgresql/9.3/main/ RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf ADD Setup.sh /docker-entrypoint-initdb.d/1.sh ADD schema.sql /docker-entrypoint-initdb.d/2.sql VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] 

 FROM postgres:9.3 MAINTAINER Andrew Broadbent <andrew.broadbent@manchester.ac.uk> RUN mkdir -p /etc/postgresql/9.3/main/ RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] 

我从下面的shell脚本运行第一个:

 # Create the volumes for the data backend database. docker volume create --name psql-data-etc docker volume create --name psql-data-log docker volume create --name psql-data-lib # Create data store database echo -e "\n${TITLE}[Data Store Database]${NC}" read -p " User name: " user read -s -p " Password: " password echo "" read -p " Database name: " dbname docker run -v psql-data-etc:/etc/postgresql -v psql-data-log:/var/log/postgresql -v psql-data-lib:/var/lib/postgresql -e "NEW_USER=$user" -e "NEW_PASSWORD=$password" -e "POSTGRES_DB=$dbname" -p 9001:5432 -P -d --name psql-data postgres-setup-datastore 

我从下面跑第二个:

 echo -e "\n${TITLE}[Data Store Database]${NC}" read -p " User name: " user read -s -p " Password: " password docker run -v psql-data-etc:/etc/postgresql -v psql-data-log:/var/log/postgresql -v psql-data-lib:/var/lib/postgresql -e "POSTGRES_USER=$user" -e "POSTGRES_PASSWORD=$password" -p 9001:5432 -P --name psql-data postgres-runtime 

如果我运行第一个脚本,连接数据库进行一些更改,然后删除容器,然后运行第二个脚本,我对数据库所做的更改不会持久化。 我如何坚持他们? 我设法让它工作更早,但我不知道我已经改变,似乎无法再工作了。