docker 可以写入 cd 吗?

Red*_*ket 2 ubuntu docker

docker 可以写入 cd 吗?docker 可以执行吗

cdrecord dev=/dev/sr0 -checkdrive
Run Code Online (Sandbox Code Playgroud)

从 Ubuntu 容器?

Docker似乎可以使用父级的网络硬件,那为什么不能使用父级的cdrom/DVD设备呢?

更新:

这个问题是关于编程的,因为我有一些在我的 Ubuntu VM 上运行的 shell 脚本,我想知道迁移到 docker 是否可行。我很抱歉最初没有指出这一点:)

Von*_*onC 5

我想是这样(尚未测试),您可以在此docker run脚本中找到一个示例:

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 &
Run Code Online (Sandbox Code Playgroud)

如前所述在评论卢卡,该--privileged标志是必需的(docker run):

默认情况下,大多数潜在危险的内核功能都被删除;包括cap_sys_admin(这是挂载文件系统所必需的)。但是,该--privileged标志将允许它运行。

--privileged标志为容器提供了所有功能,并且还解除了设备cgroup控制器强制执行的所有限制。
换句话说,容器几乎可以做主机可以做的所有事情。
此标志的存在是为了允许特殊用例,例如在 Docker 中运行 Docker。


正如Vincent Demeester在评论中提到,还有一个--device选项:

通常需要将设备直接暴露给容器。该--device选项可以实现这一点。
例如,可以将特定的块存储设备或循环设备或音频设备添加到其他非特权容器(不带--privileged标志)并让应用程序直接访问它。

默认情况下,容器将能够读取、写入mknod这些设备。这可以使用:rwm每个--device标志的第三组选项覆盖

注意--device不能安全地与临时设备一起使用。不应该将可能被删除的块设备添加到不受信任的容器中--device

issue 10637 所示,某些设备可以更改其节点名称。见问题 8826

如果您使用lxc后端启动 Docker 守护进程,您应该能够使用--lxc-conf=lxc.cgroup.devices.allow = c 189:* rwm允许您的容器访问该组的所有设备,然后使用 avolume -v /dev/bus/usb/:/dev/bus/usb/访问所有USB 设备。