我发现您可以使用命名卷,因此两个容器可以在它们之间交换数据。但是,我需要将这个名称卷存储在我的主机(运行docker镜像的计算机)中。
那么如何创建存储在/ media / my_volume中的容器,它也在容器之间共享?我试图简单地将/ 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会删除传输内容
答案 0 :(得分:0)
虽然内容未从容器中删除,但它被“屏蔽”,因为安装的目录安装在现有文件的顶部。这些文件仍然在容器中,只是无法访问。
但是,卸载卷会显示仍在容器中的内容(只有无法访问,因为卷安装在容器上)
答案 1 :(得分:0)
它已在/ var / lib / docker(或您已配置为图形路径的任何目录)的主机上有一个路径。
$ docker volume create test
test
$ docker volume inspect -f '{{.Mountpoint}}' test
/var/lib/docker/volumes/test/_data
如果您希望它出现在/ media / my_volume上,您可以执行bind mount:
mount --bind /var/lib/docker/volumes/test/_data /media/my_volume