主机上的音量 - Postgres的许可被拒绝(Mac OS)

时间:2015-08-20 08:53:17

标签: docker

我正在使用以下音量启动Postgresql图像

/Users/me/Desktop/volumes/postgresql/data:/var/lib/postgresql/data

根据docker docs,它应该可以工作,因为docker应该可以访问Mac OS上的/Users目录。创建&运行容器,我可以看到 创建了空目录/Users/me/Desktop/volumes/postgresql/data但是Postgres没有启动并在日志中显示这些行:

could not create directory "/var/lib/postgresql/data/global": Permission denied

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您的目录属于不同的用户,然后是用户,即执行容器的用户。

你可以像开始一样改变你的目录。

chmod 777 /Users/me/Desktop/volumes/postgresql/data

如果您可以使用此设置启动容器,则此缺少的权限是根本原因。

然后您可以尝试使用

启动容器
run -u uid ...

并在macos上指定用户的用户标识。 您还必须在boot2docker中创建用户,即

boot2docker ssh
sudo sh
adduser <anyuserid> -u <your uid>

答案 1 :(得分:0)

我遇到了同样的问题。

我所做的是通过在虚拟框内创建文件夹来解决此问题。

设置你的docker-compose.yml postgresql文件夹:

/Users/me/Desktop/volumes/postgresql/data

/root/data

在Virtual Box的Docker处输入并创建数据文件夹