在Ubuntu上运行docker:无法从容器写入已安装的主机卷
Docker对我来说在Mac上运行良好,但是我必须在VirtualBox(或Parallels或VMWare
Fusion)中运行docker主机,因为Mac的内核不支持docker。
所以我尝试在Ubuntu桌面上设置应用程序和docker-compose-
本机地,其中docker客户端和docker主机都物理上运行在同一系统上。这可行,但是我正在运行的Docker容器无法写入已安装的主机卷。
我使用docker-compose进行以下设置:
volumes: - ./api:/usr/src/app
因此,我将主机Ubuntu OS的“ api”目录挂载到/ usr / src / app下的docker容器中。
docker inspect <container ID>
显示该卷可写
"Destination": "/usr/src/app","Mode": "rw",
"RW": true
但是事实并非如此:permission denied
当我尝试在Docker容器中创建目录或编辑文件时得到提示。
我用谷歌搜索了这个问题,当然,我遇到了一些CentOS / RHEL的SELinux问题,但是
,而不是CentOS。
回答:
如果您uid
在主机(id -u
)上的主机名uid
与docker容器中的用户名(通常为“ docker”)不同,则可能会出现此问题。你可以试试:
- 使您的用户与docker容器中的用户之间的UID相同。
- 将您和Docker都属于的组的目录上的组权限设置为可写。
- 您还可以使用nuclear选项:
chmod a+rwx -R project-dir/
核选项会使您的git
工作区变得肮脏,这会极大地烦扰您,因此这不是最佳的长期解决方案。它可以止血。
为了进一步理解该问题,您可能会发现以下有用:
- https://github.com/docker/docker/issues/7906
- https://github.com/docker/docker/issues/7198
以上是 在Ubuntu上运行docker:无法从容器写入已安装的主机卷 的全部内容, 来源链接: utcz.com/qa/407162.html