小编典典

在主机上增加docker卷(可能通过docker-compose)

docker

我有下面的例子

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,一切都很好。但是,从主机上,我只能/var/lib/docker以root
用户身份访问,因为它是root:root(有意义的)。我想知道是否有一种方法可以chown将主机的目录设置为更明智/更安全的目录(例如,我用来在主机上执行大多数操作的相对没有特权的用户),或者我是否只需要chown手动将其吸干。我已经开始有许多脚本可以解决其他问题,因此多行几行不会有太大问题,但是如果我愿意的话,我真的想保持自己的自动化程度最小可以-
减少愚蠢错误的机会。

顺便说一句,否:如果我挂载主机目录而不创建卷,它们将被覆盖,这意味着如果它们开始为空,它们将保持为空,并且我不会从容器内部获得默认配置(或其他任何内容)。

要点:我可以将卷移动到更方便的位置吗?再说了,/home/myuser/myserverstuff/volumes


阅读 282

收藏
2020-06-17

共1个答案

小编典典

最好不要尝试/var/lib/docker直接访问内部文件。这些目录本应由docker守护程序管理,而不是被弄乱。

要访问卷内的数据,有许多选择。

  • 使用绑定安装的目录(您曾考虑过,但不适合您的用例)。
  • 使用使用相同卷并使其可通过该容器访问的“服务”容器,例如运行ssh(使用scp)的容器或SAMBA容器(例如svendowideit / samba
  • 使用音量驱动程序插件。周围有各种各样的插件可以提供各种选择。例如,本地持久插件是一个非常简单的插件,可让您指定docker应该 在何处 存储卷数据(位于之外/var/lib/docker
2020-06-17