gpt4 book ai didi

linux - 在 Ubuntu : mounted host volume is not writable from container 上运行 docker

转载 作者:IT老高 更新时间:2023-10-28 12:45:36 28 4
gpt4 key购买 nike

Docker 对我来说在 Mac 上运行良好,但我必须在 VirtualBox(或 Parallels 或 VMWare Fusion)内运行 docker host,因为 Mac 的内核不支持 docker。

所以我尝试在 Ubuntu 桌面上设置我的应用程序和 docker-compose - 本地,docker 客户端和 docker 主机在同一系统上物理运行。这行得通,但我正在运行的 docker 容器无法写入已安装的主机卷。

我使用带有以下设置的 docker-compose:

volumes:
- ./api:/usr/src/app

所以我将主机 Ubuntu 操作系统的“api”目录挂载到/usr/src/app 下的 docker 容器中。

docker inspect <container ID>表明该卷是可写的

"Destination": "/usr/src/app",
"Mode": "rw",
"RW": true

但事实并非如此:我得到 permission denied当我尝试从 docker 容器中创建目录或编辑文件时。

当然,我在 Google 上搜索过这个问题,并且遇到了 CentOS/RHEL 的一些 SELinux 问题,但我运行的是 Ubuntu 15.10,64 位版本,而不是 CentOS。

最佳答案

如果您在主机上的 uid (id -u) 与 docker 容器中用户的 uid 不同(通常是“docker”)那么你可能会遇到这个问题。你可以试试:

  1. 使您的用户和 docker 容器中的用户之间的 UID 相同。
  2. 将目录上的组权限设置为对您和 docker 都属于的组可写。
  3. 您也可以使用核选项:

chmod a+rwx -R project-dir/

核选项将使您的 git 工作区变得肮脏,这会让您非常烦恼,因此不是最好的长期解决方案。它可以止血。

为了进一步理解问题,您可能会发现这些有用:

  1. https://github.com/docker/docker/issues/7906
  2. https://github.com/docker/docker/issues/7198

关于linux - 在 Ubuntu : mounted host volume is not writable from container 上运行 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34031397/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com