主机上的chown docker卷(可能通过docker-compose)

我有下面的例子

version: '2' services: proxy: container_name: proxy hostname: proxy image: nginx ports: - 80:80 - 443:443 volumes: - proxy_conf:/etc/nginx - proxy_htdocs:/usr/share/nginx/html volumes: proxy_conf: {} proxy_htdocs: {} 

这工作正常。 当我运行docker-compose up它会在/var/lib/docker/volumes创build那些名为卷的/var/lib/docker/volumes并且都是很好的。 但是,从主机,我只能以root身份访问/var/lib/docker ,因为它是root:root (有意义)。 我想知道是否有办法让主机的目录变得更加合理/安全(比如,我用相对不重要的用户在主机上做大部分事情),或者我只需要把它们吮吸,手动。 我开始有一些脚本已经解决了其他问题,所以再多行几行也不是什么大问题,但是我真的很想保持自己编写的自动化最小化,如果我可以 – 更less的愚蠢错误的机会。

顺便说一下,不,如果我安装主机目录而不是创build卷,它们会被覆盖,这意味着如果他们开始为空,他们保持空白,我没有得到容器内的默认configuration(或其他)。

加分:我可以将卷移到更方便的位置吗? 说, /home/myuser/myserverstuff/volumes

最好不要直接访问/var/lib/docker里面的文件。 这些目录是由docker守护进程pipe理的,而不是被混淆。

要访问卷中的数据,有很多选项。

  • 使用绑定挂载的目录(你认为,但不符合你的用例)。
  • 使用一个使用相同卷的“服务”容器,并通过该容器访问它,例如运行ssh (使用scp )或SAMBA容器(如svendowideit / samba )的容器。
  • 使用卷驱动程序插件 。 有各种各样的插件提供各种选项。 例如, 本地persist插件是一个非常简单的插件,它允许您指定docker应该在哪里存储卷数据(因此在/var/lib/docker