docker可以写入CD吗? docker可以执行
cdrecord dev=/dev/sr0 -checkdrive
来自Ubuntu容器?
Docker似乎能够使用父网络硬件,为什么不能使用父CDROM / DVD设备呢?
更新
这个问题是关于编程的,我有一些我在Ubuntu VM上运行的shell脚本,我想知道迁移到docker是否可行。我为最初没有指出这一点而道歉:)
答案 0 :(得分:4)
我想是这样(尚未测试),你可以在docker run
script中找到一个例子:
docker run \
-t --rm \
--privileged \
-v $XSOCK:$XSOCK \
-v /etc/localtime:/etc/localtime:ro \
-v /dev/sr0:/dev/sr0 \
-v /dev/cdrom:/dev/cdrom \
-v $RIPS:/rips \
--name handbrake marvambass/handbrake &
正如in the comments提到的Luca,--privileged
标志是必需的(docker run
):
默认情况下,大多数潜在危险的内核功能都会被删除;包括
cap_sys_admin
(安装文件系统所必需的)。但是,--privileged
标志将允许它运行。
--privileged
标志为容器提供所有功能,并且还解除了设备cgroup
控制器强制执行的所有限制。
换句话说,容器几乎可以完成主机可以做的所有事情 此标志用于允许特殊用例,例如在Docker中运行Docker。
由于Vincent Demeester提及in the comments,还有--device
选项:
通常需要将设备直接暴露给容器。
--device
选项启用了该功能。
例如,可以将特定的块存储设备或循环设备或音频设备添加到其他非特权的容器(没有--privileged
标志)并让应用程序直接访问它。默认情况下,容器将能够读取,写入和
的第三个mknod
这些设备。可以使用每个:rwm
标记--device
选项集覆盖此值注意:
--device
无法安全地与短暂设备一起使用。不应将可能被删除的阻止设备添加到--device
的不受信任的容器中。
如issue 10637所示,某些设备可以更改其节点名称。见issue 8826
如果您使用
lxc
后端启动Docker守护程序,则应该能够使用--lxc-conf=lxc.cgroup.devices.allow = c 189:* rwm
允许容器访问该组的所有设备,然后使用volume -v /dev/bus/usb/:/dev/bus/usb/
访问所有 USB设备。