gpt4 book ai didi

docker - 在撰写容器之间共享卷,其中一个提供其文件系统?

转载 作者:行者123 更新时间:2023-12-02 18:15:20 24 4
gpt4 key购买 nike

我正在尝试使用 mergerfs 设置一些 dockerised NAS和桑巴:

services:

mergerfs:
build: ./mergerfs # just debian and install latest release
cap_add:
- SYS_ADMIN
devices:
- /dev/fuse:/dev/fuse
volumes:
- media:/mnt/pool
- /mnt/data0:/mnt/data0
...
...

samba:
image: dperson/samba
command: -s'media;/srv/media;yes;no;yes' # guest allowed, not RO
volumes:
- media:/srv/media
depends_on:
- mergerfs
...

volumes:
media:

问题是,虽然我可以读/写 /srv/mediasamba , 无法接通 /mnt/poolmergerfs .

(我可以通过观看 docker-compose logs mergerfs 来看到这一点,同时执行 docker-compose exec samba sh -c "echo 'foobar' > /srv/media/test.txt",它在日志中什么都没有显示,而等效的 exec mergerfs 则显示。)

如何制作此命名卷 media成为 mergerfs 提供的实际文件系统的“代理”服务?

最佳答案

答案在于bind propagation .

特别是这里mergefs需要media成为 type:bind而不是 type:volume , 以便可以将其设置为(递归地)(r)shared绑定(bind)传播 - 这意味着容器配置的挂载将传播回主机。

也就是说,media:/mnt/pool变成 /mnt/media:/mnt/pool:rshared .

关于docker - 在撰写容器之间共享卷,其中一个提供其文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47848982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com