我运行了命令
docker compose up --build
,它运行正常,然后我尝试使用 sudo 运行它一次。
从那时起,如果我不使用 sudo,我会收到此错误:
open /Users/[user]/.docker/buildx/current: permission denied
显然可以通过在命令之前设置
DOCKER_BUILDKIT=0
来修复,但我真的想要一个干净的解决方案。
我尝试重新启动我的笔记本电脑,删除 docker 桌面(使用我在堆栈溢出上发现的卸载脚本,显然没有卸载所有内容)。我仍然收到该错误
正如@emadpres 的评论,我在这里与自动检测用户的 mac 用户分享:
sudo chown -R $(whoami) ~/.docker
正如 @lane.maxwell 所评论的,您需要将
~/.docker
目录的所有者更新为您的用户名,使用: sudo chown -R [user] ~/.docker
(
-R
: 递归地对子目录执行更改)
我在 mac 上遇到了与 docker-desktop 相同的问题,之前的答案都没有解决我的案例中与 buildx 相关的工件导致权限问题的解决方案。
如果与 buildx 相关的文件或目录的所有权发生冲突,Docker 将不会授予修改它们的权限,如果权限设置过于严格,也会发生这种情况。
损坏或陈旧的buildx 缓存中的损坏文件或陈旧的构建工件可能与新构建冲突,导致权限被拒绝。
无论哪种情况,一种做法是删除 buildx 工件并重新初始化它。
rm -rf ~/.docker/buildx
如果需要重新初始化
docker buildx create --use