Docker: JACK 服务器不是 运行

Docker: JACK server is not running

我是 运行 一组带有 ROS 的 docker 容器,用于控制机器人。其中一个容器必须通过 sound_play 包播放一些音频文件。然而它 returns 错误

Cannot connect to server socket err = No such file or directory  
Cannot connect to server request channel  
jack server is not running or cannot be started

我能够aplay容器内的音频(.wav)文件,我的声卡肯定能被识别,我也试过运行特权模式下的容器。我也尝试在容器中单独安装jackd并启动一个jack服务器,但得到错误

Cannot lock down 82274202 byte memory area (Cannot allocate memory).  
Bus error (core dumped)

我对问题的理解是否正确?如果是这样,我怎样才能让 jack 服务器在容器内启动?

我通过安装 jackd1 而不是 jackd2 解决了这个问题,因为显然,jackd2 需要实时优先级,而我无法将其提供给 docker 容器。 jackd1 虽然成功了。
我的 Dockerfile:

FROM ubuntu:14.04
RUN apt-get update && apt-get install -y jackd1

运行 命令:

docker run -it --rm --privileged=true --device=/dev/snd:/dev/snd myContainerName jackd -R -d alsa -d hw:1

这将在您的容器中启动一个 jack 服务器。 sound_play 节点在那之后工作正常。

部分归功于 http://crunchbang.org/forums/viewtopic.php?id=33530