docker 可以写入 cd 吗?docker 可以执行吗
cdrecord dev=/dev/sr0 -checkdrive
Run Code Online (Sandbox Code Playgroud)
从 Ubuntu 容器?
Docker似乎可以使用父级的网络硬件,那为什么不能使用父级的cdrom/DVD设备呢?
更新:
这个问题是关于编程的,因为我有一些在我的 Ubuntu VM 上运行的 shell 脚本,我想知道迁移到 docker 是否可行。我很抱歉最初没有指出这一点:)
我想是这样(尚未测试),您可以在此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 设备。
归档时间: |
|
查看次数: |
1457 次 |
最近记录: |