如何将主机设备挂载到 Docker 容器中?

sak*_*liu 5 docker

我有一台带有块设备的 Linux 主机/dev/sdb,我想将该设备挂载到主机的/mnt/sdb.

我的特殊需要是在容器中而不是在主机本身中执行此操作,并且不需要将设备也安装到容器中(例如-v)。

例如(当然不起作用):

$ docker run some-image mount /dev/sdb /mnt/sdb
Run Code Online (Sandbox Code Playgroud)

或者这绝对不可能?

Mar*_*tin 6

Docker 支持向容器添加/传递设备:

docker run --device=/dev/sdb
Run Code Online (Sandbox Code Playgroud)

https://docs.docker.com/engine/reference/commandline/run/#add-host-device-to-container-device

  • [在 macOS 上不可能](https://devops.stackexchange.com/a/6076/3)(因为守护进程在虚拟机内运行)。 (3认同)

Von*_*onC 2

您应该能够安装该设备(在 docker 外部),然后在 docker run 中使用所述安装的文件夹。
请参阅问题 21485作为说明:

mount /dev/sdb /workspace
docker run --rm -v "/workspace:/workspace" some-image
Run Code Online (Sandbox Code Playgroud)