如何在 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-utilsalsa-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扩展?

如何在 Debian Python 中播放声音文件?

如何在 iOS 中为按钮添加声音?

如何在 Docker 中为 Postgres 运行 sql 脚本?

如何在 Debian 9 上安装和使用 Docker