我想让 docker 容器访问已安装的 USB 外部硬盘 (ExFat) 中的数据。我将硬盘安装到现有的空文件夹中/tmp/driveTest
。
接下来,我tmp
通过输入 docker-compose.yml 文件将文件夹挂载到 docker 容器中- '/tmp:/mnt/fs'
。当 Docker 容器启动时,它会成功从硬盘驱动器读取数据。但是,当我卸载驱动器而不重新启动 Docker 容器时,docker 容器仍然可以看到文件夹/文件结构,而它不应该看到。
当我启动 Docker 容器并挂载驱动器时,它根本看不到文件夹/文件结构,而它应该看到。
我尝试了带有标志的选项privileged: true
,但似乎没有任何效果。我还尝试了其他安装选项,但没有成功:
- type: bind
source: /tmp
target: /mnt/fs
如果有可能实现我想要实现的目标,那么该怎么做?
答案1
经过多次反复试验后,我找到了解决方案。
在该docker-compose.yml
文件中,我创建了一个命名卷,如下所示:
volumes:
usb-drive:
driver: local
driver_opts:
type: none
o: bind
device: /home/user/usb-mount/
然后,对于容器服务设置:
volumes:
- usb-drive:/mnt/usb
当您对文件夹执行操作mount
时,该卷会更新。umount
/home/user/usb-mount/
编辑:只需确保在创建卷后安装 USB 驱动器即可。安装点的路径与/home/user/usb-mount/
通过 docker-compose 创建卷后的路径不同。