我需要您的帮助以了解我的问题。
我上周在Catalina上更新了Macintosh,然后在Mac上更新了Docker。
自从这些更新以来,我在共享卷上遇到所有权问题。
我可以举一个小例子。我只是创建了一个小的docker-compose,它构建了一个nginx容器。 我有一个文件夹src,上面有一个PHP文件,例如“ src / index.php”。
我构建容器并启动它。 然后我转到/ app / www / mysrc(共享卷)和磁带“ ls -la”,以检查index.php是否正常,我得到:
ls: cannot open directory '.': Operation not permitted
这是一个简单的docker-compose文件: docker-compose.yml:
version: "3"
services:
test-nginx:
restart: always
image: 'nginx:1.17.3'
ports:
- "8082:80"
volumes:
- ./src:/app/www/mysrc
构建并启动容器时,我得到了:
$ docker-compose exec test-nginx sh
# cd /app/www
# ls -la
total 8
drwxr-xr-x 3 root root 4096 Oct 21 07:58 .
drwxr-xr-x 3 root root 4096 Oct 21 07:58 ..
drwxr-xr-x 3 root root 96 Oct 21 07:51 mysrc
# cd mysrc
# ls -la
ls: cannot open directory '.': Operation not permitted
# whoami
root
因此,我的nginx服务器已关闭,因为nginx无法访问源文件。
感谢您的帮助。
答案 0 :(得分:3)
如果在更新Catalina之前可以正常使用,则问题是由于Catalina要求了新的权限。
现在,macOS请求所有内容的权限,甚至包括访问目录的权限。因此,可能您已收到有关授予Docker for Mac访问共享文件夹的权限的通知,而您没有授予它,现在您将面临此类操作的结果。
要立即授予特权,请转到系统偏好设置>安全性和隐私>文件和文件夹,然后添加Docker for Mac和您的共享目录。