问题描述
在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。
正文完