[英]Docker-compose shared volume between containers but that has a path in host
我发现可以使用命名卷,以便两个容器可以在它们之间交换数据。 但是,我需要将此名称卷存储在我的主机计算机(运行docker映像的计算机)中。
那么,如何创建存储在/ media / my_volume中并在容器之间共享的voluma? 我试图简单地将/ media / my_volume绑定到两个容器,但是当我再次开始撰写时,它最终导致擦除了所有内容
更新:
version: '3'
services:
transmission:
build: ./rpi-transmission
image: rpi-transmission
ports:
- "9091:9091"
- "51413:51413"
- "51413:51413/udp"
volumes:
- "/home/pi/transmission:/etc/transmission"
- "/media/external:/home/downloads"
- "/home/transmission-watch:/home/transmission-watch"
samba:
build: ./rpi-samba
image: rpi-samba
stdin_open: true
volumes:
- "/media/external:/data/share:ro"
kodi:
build: ./kodi-rpi
image: kodi-rpi
ports:
- "127.0.0.1:8080:8080"
- "127.0.0.1:9777:9777/udp"
devices:
- "/dev/tty0:/dev/tty0"
- "/dev/tty2:/dev/tty2"
- "/dev/fb0:/dev/fb0"
- "/dev/input:/dev/input"
- "/dev/snd:/dev/snd"
- "/dev/vchiq:/dev/vchiq"
volumes:
- "/var/run/dbus:/var/run/dbus"
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- "/home/pi/kodi-rpi/config:/config/kodi"
- "/home/pi/kodi-rpi/data:/data"
我需要在两个容器上都使用/ media / external。 如果给它起一个名字,则无法将其挂载到/ media / external。 如果我现在简单地做的话,我认为samba会删除传输的内容
但是,不会从容器中删除内容,而是将其“屏蔽”,因为已安装的目录已安装在现有文件的顶部。 文件仍在容器中,仅无法访问。
但是,卸载该卷将显示仍在容器中的内容(仅不可访问,因为该卷已安装在其上)
它在/ var / lib / docker内部的主机上已经有一个路径(或您配置为图形路径的任何目录)。
$ docker volume create test
test
$ docker volume inspect -f '{{.Mountpoint}}' test
/var/lib/docker/volumes/test/_data
如果希望它出现在/ media / my_volume中,则可以执行绑定安装:
mount --bind /var/lib/docker/volumes/test/_data /media/my_volume
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.