我正在使用以下音量启动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
我做错了什么?
答案 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处输入并创建数据文件夹