如何在 docker 中为 debian 创建声音设备?
Posted
技术标签:
【中文标题】如何在 docker 中为 debian 创建声音设备?【英文标题】:How to create sound devices for debian in docker? 【发布时间】:2018-02-22 19:09:24 【问题描述】:我正在使用各种 docker 容器,它们实际上是基于 Debian sid 构建的。这些图像缺少/dev/snd
和/dev/snd/seq
,这很有意义,因为它们没有硬件声卡。
我用来生成 MIDI 文件的几个软件都需要这些音序器设备。它们不一定用于发送音频,但如果声音设备不存在,代码本身会在 init 中终止。需要明确的是,我不需要在 docker 中生成音频信号,而我只需要这些存在就可以让其他软件开心。
到目前为止,我一直在尝试无休止地安装各种 alsa 软件包(alsa-utils
、alsa-oss
和其他)并尝试通过 modprobe
摆脱这种情况,但都没有运气。
在 docker 容器中,即使是虚拟的,也需要有有效的音频设备?
【问题讨论】:
我在几周前运行 raspbian 的 rasberrypi 上的 docker 容器中设置了 google home。即使安装了声音驱动程序(alsa-utils),如果我不插入声音设备,google home 也不会启动。您已经通过您的问题理解了这一点。我只能说可能没有其他办法:( 看看这是否有帮助。您需要从主机blog.jessfraz.com/post/docker-containers-on-the-desktop 挂载/dev/snd
@TarunLalwani 我在其他地方看到过对--device /dev/snd
的引用,但是这个指南是从 2015 年开始的,官方 docker 文档没有提到 --device 是一个有效的选项,我认为这是已弃用/删除。
--device /dev/snd/seq:/dev/snd/seq
不工作吗?
我认为这已经解决了。如果您只需要目录,只需将它们作为卷挂载到主机上存在的其他目录即可。 ***.com/questions/28985714/…
【参考方案1】:
通过在运行容器时添加设备,我已经成功地通过 Docker 获得声音(我知道这不是同一个问题)。
docker run -it --device /dev/snd myimage
权限很快就会变得很有挑战性,您可能想先尝试使用--device /dev/snd
和--privileged
,然后在使用后一点一点地回拨权限。
【讨论】:
以上是关于如何在 docker 中为 debian 创建声音设备?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 docker 中为 postgresql 创建 postgis 扩展?
如何在docker中为postgresql创建postgis扩展?