首页 > 解决方案 > 如何在 Docker 中本地使用循环设备

问题描述

我想在本地的 docker 容器中使用循环设备。这意味着,当运行几个容器时,它们都应该有一个 /dev/loop0 连接到容器中的本地文件。我试过了

[root@600bbfb452d1 /]# mknod /dev/loop20 b 7 20
[root@600bbfb452d1 /]# dd if=/dev/random of=loopfile1 bs=1M count=2
[root@600bbfb452d1 /]# losetup -a | grep 20
/dev/loop20: [0049]:3553002 (/loopfile1)

到目前为止,一切都很好。但是回到主机我可以看到:

[loewe@linux-2 ~]$ losetup -a | grep 20
/dev/loop20: []: (/loopfile1)

循环设备 /dev/loop20 也在主机 /dev 中创建 - 因为我担心是因为 tmpfs 挂载 - 最糟糕的是容器本地文件“loopfile1”附加到主机循环开发。

我尝试在容器中卸载 /dev 文件系统,但没有成功(设备繁忙但 lsof 看不到 proc)。

知道我做错了什么吗?

顺便说一句:在容器中使用 iscsi 设备应该有同样的问题。

谢谢海科

标签: dockerdevicedevice-driver

解决方案


推荐阅读