通过boot2docker将卷挂载到postgres容器

我试图在OSX上用boot2docker运行postgres映像的容器。

这个命令适用于我的Ubuntu:

 docker run -v $(pwd)/data:/var/lib/postgresql/data postgres 

但是OSX说:

 fixing permissions on existing directory /var/lib/postgresql/data ... ok creating subdirectories ... initdb: could not create directory "/var/lib/postgresql/data/global": Permission denied initdb: removing contents of data directory "/var/lib/postgresql/data" 

chmod没有帮助。

我试过选项 – 用户--user $(id -u):$(id -g) 。 它在Ubuntu上打破了容器,它改变了OSX上的错误。

Ubuntu: chmod: changing ownership of '/var/lib/postgresql/data': Operation not permitted

OSX: chmod: changing permissions of '/run/postgresql': Operation not permitted

因为它适用于Ubuntu,我想在OSX上运行它,而不需要创build自己的图像。 但我不知道如何处理这个错误。

有任何想法吗?

我认为这是一个已知的boot2docker问题有几个解决方法,但没有解决scheme

 #1) Overriding the /Users default share on boot2docker start: boot2docker --vbox-share=$(pwd)/share-location=share-name up #2) boot2docker ssh in and mount the custom share: sudo mount -t vboxsf -o uid=999,gid=50 share-name [SHARE-FULL-PATH]/share-location 

将本地文件夹装入Docker容器并不是一个好习惯。 这通常会导致文件权限问题 。

更好的解决scheme是使用卷容器来改变您的设置。 卷容器备份也有很好的概念。