如何将macOS上的/dev/disk设备传递到Linux Docker中

34次阅读
没有评论

问题描述

在macOS上通过USB连接了外部硬盘,并且正在运行Ubuntu的Docker容器。他尝试使用以下命令将设备传递给容器:

docker run -it --device=/dev/disk3 --privileged ubuntu bash

但是设备在容器中不可见。用户还尝试了其他方法,但也没有成功。他想知道自己漏掉了什么。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1:将ext4驱动器挂载到Mac上(不推荐)

虽然Mac本身不支持ext4文件系统,但有一些方法可以解决这个问题。你可以按照这个教程(链接)在Mac上安装ext4fuse。当你挂载了设备后,可以使用-v标志将其添加到Ubuntu容器中,确保已将卷的目录添加到Docker的文件共享文件夹中。

docker run -v <Your_volume>:<dest_volume> -it ubuntu bash

方案2:使用VirtualBox创建docker-machine并将设备添加到虚拟机中(仍不推荐)

你可以按照这个教程(链接)安装带有VirtualBox驱动程序的docker-machine,并将USB设备挂载到虚拟机中。

方案3:在Linux上运行Docker(推荐!)

我不建议使用Docker for Mac。它是为Linux构建的,如果你不切换到Linux,你将浪费时间解决这些问题,而没有真正的原因。你可以在VirtualBox中运行几个Ubuntu核心,并在其上安装Docker,这样你就可以使用Docker Swarm(在Docker for Mac中无法使用,除非你使用docker-machine)。

以上解决方案中,方案1和方案2都不推荐,因为它们可能会增加复杂性并引入其他问题。最好的解决方案是使用方案3,在Linux上运行Docker。

正文完