具有外部数据容器的Docker postgresql容器

我有一个数据容器与Dockerfile:

from ubuntu:latest VOLUME ["/var/lib/postgresql/9.3/main"] 

和一个postgresql服务容器:

 #install stuff ............ # Set the default command to run when starting the container CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] 

然后我启动数据容器和postgresql容器:

docker运行-i -t -d –name数据docker:数据

 docker run -i -t -p 49131:5432 --name postgresql --volumes-from data --rm docker:postgresql 

它说 :

 FATAL: data directory "/var/lib/postgresql/9.3/main" has wrong ownership HINT: The server must be started by the user that owns the data directory. 

好像/var/lib/postgresql/9.3/main文件夹属于data容器中的根用户。 然后我附加到容器,添加用户,并将该文件夹的所有者更改为postgres:

 docker attach data useradd postgres -s /bin/bash chown -R postgres:postgres /var/lib/postgresql 

然后再次尝试相同的错误。

有什么问题,我错过了什么?

postgres用户可能还没有在单独的容器中分配相同的UID。

有没有必要这样做,只是使用postgres图像来创build您的数据容器,例如:

 docker run --name data-container postgres echo "Data Container" 

这样所有的权限将被正确设置。 有关更多信息,请参阅