chown docker 主机上的卷(可能通过 docker-compose)
chown docker volumes on host (possibly through 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
中创建那些命名卷,一切都很好。但是,从主机上,我只能以 root 身份访问 /var/lib/docker
,因为它是 root:root
(有道理)。我想知道是否有一种方法可以 chown
将主机的目录设置为更多 sensible/safe 的内容(例如,我用来在主机上执行大多数操作的相对无特权的用户),或者我是否只需要接受它并手动 chown
它们。我已经开始有一些脚本可以解决其他问题,所以多几行不会有什么大问题,但我真的很想把我自己写的自动化保持在最低限度,如果我可以 -- 犯愚蠢错误的机会更少。
顺便说一下,不:如果我挂载主机目录而不是创建卷,它们会被覆盖,这意味着如果它们开始是空的,它们将保持空,并且我不会从中获得默认配置(或其他)在容器内。
加分项:我可以将卷移动到更方便的位置吗?比如说,/home/myuser/myserverstuff/volumes
?
最好不要尝试直接访问 /var/lib/docker
中的文件。这些目录应该由 docker 守护程序管理,不能被弄乱。
要访问卷内的数据,有多种选择;
- 使用绑定挂载的目录(您考虑过,但不适合您的用例)。
- 使用 "service" 容器,该容器使用相同的卷并可通过该容器访问它,例如容器 运行
ssh
(使用 scp
)或一个 SAMBA 容器(例如 svendowideit/samba)
- 使用 volume-driver plugin. there's various plugins around that offer all kind of options. For example, the local persist plugin 是一个非常简单的插件,它允许您指定 哪里 docker 应该存储卷数据(所以在
/var/lib/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
中创建那些命名卷,一切都很好。但是,从主机上,我只能以 root 身份访问 /var/lib/docker
,因为它是 root:root
(有道理)。我想知道是否有一种方法可以 chown
将主机的目录设置为更多 sensible/safe 的内容(例如,我用来在主机上执行大多数操作的相对无特权的用户),或者我是否只需要接受它并手动 chown
它们。我已经开始有一些脚本可以解决其他问题,所以多几行不会有什么大问题,但我真的很想把我自己写的自动化保持在最低限度,如果我可以 -- 犯愚蠢错误的机会更少。
顺便说一下,不:如果我挂载主机目录而不是创建卷,它们会被覆盖,这意味着如果它们开始是空的,它们将保持空,并且我不会从中获得默认配置(或其他)在容器内。
加分项:我可以将卷移动到更方便的位置吗?比如说,/home/myuser/myserverstuff/volumes
?
最好不要尝试直接访问 /var/lib/docker
中的文件。这些目录应该由 docker 守护程序管理,不能被弄乱。
要访问卷内的数据,有多种选择;
- 使用绑定挂载的目录(您考虑过,但不适合您的用例)。
- 使用 "service" 容器,该容器使用相同的卷并可通过该容器访问它,例如容器 运行
ssh
(使用scp
)或一个 SAMBA 容器(例如 svendowideit/samba) - 使用 volume-driver plugin. there's various plugins around that offer all kind of options. For example, the local persist plugin 是一个非常简单的插件,它允许您指定 哪里 docker 应该存储卷数据(所以在
/var/lib/docker
)