linux – 在Ubuntu上运行docker:挂载的主机卷不能从容器写入

linux – 在Ubuntu上运行docker:挂载的主机卷不能从容器写入,第1张

概述Docker在我的Mac上工作得很好,但是我必须在VirtualBox(或Parallels,或VMWare Fusion)中运行docker主机,因为Mac的内核不支持docker. 所以我尝试在Ubuntu桌面上设置我的应用程序和docker-compose – 本机地,docker客户端和docker主机在同一系统上物理运行.这很有用,但我运行的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

但事实并非如此:当我尝试从docker容器中创建目录或编辑文件时,我获得了权限被拒绝.

当然,我搜索了这个问题,我遇到了一些CentOS / RHEL的SElinux问题,但我运行的是Ubuntu 15.10,64位版本,而不是CentOS.

解决方法 如果您在主机上的uID(ID -u)与docker容器中的用户的uID(通常是“docker”)不同,那么您可能会遇到此问题.你可以试试:

>在Docker容器中使用户与用户之间的UID相同.
>为您和docker所属的组设置要写入的目录的组权限.
>您也可以使用核选项:

chmod a rwx -R project-dir /

核选项会让你的git工作区变得肮脏,这会让你很烦恼,所以这不是最好的长期解决方案.它会止血.

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

> https://github.com/docker/docker/issues/7906
> https://github.com/docker/docker/issues/7198

总结

以上是内存溢出为你收集整理的linux – 在Ubuntu上运行docker:挂载的主机卷不能从容器写入全部内容,希望文章能够帮你解决linux – 在Ubuntu上运行docker:挂载的主机卷不能从容器写入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1034235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存