我正在尝试在ubuntu 16.04上运行没有sudo的docker。我按照Docker网站上的Linux安装后说明进行操作:
sudo groupadd docker
sudo usermod -aG docker $USER
Run Code Online (Sandbox Code Playgroud)
我重新启动然后跑了
docker ps
Run Code Online (Sandbox Code Playgroud)
该错误仍然出现:
尝试在unix:///var/run/docker.sock上连接到Docker守护程序套接字时获得的权限被拒绝:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json:拨打unix /var/run/docker.sock:连接:权限被拒绝
奇怪的是,如果我将SSH从我的机器切换到自身,则命令将正确执行。当我从tty运行命令时,它也可以正常工作。
编辑:
ls -lah /var/run/docker.sock的输出:
srw-rw---- 1 root docker 0 Aug 9 11:22 /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
id的输出:
uid=1000(uname) gid=1000(uname) groups=1000(uname),4(adm),24(cdrom),27(sudo),29(audio),30(dip),46(plugdev),113(lpadmin),128(sambashare),999(docker)
Run Code Online (Sandbox Code Playgroud)
可能出了什么问题?谢谢您的帮助!
我使用插孔在电脑中的多个声卡之间路由音频。为了录制音频,我使用了一个非常方便的 FFmpeg 命令,它创建了一个可写的插孔客户端:
ffmpeg -f jack -i <client_name> -strict -2 -y <output_file_name>。到目前为止,这效果很好。
问题从这里开始:
我还有一个 nginx docker,它记录我的数据并使其可用于流式传输。当尝试在 docker 中使用相同的命令时,我收到以下错误:"Unable to register as a JACK client"。
我开始查看FFmpeg代码,发现FFmpeg命令调用了jack_client_openjack API中的命令,失败了。
从 docker 内部的 FFmpeg 请求到主机上运行的 jackd 服务器之间的连接似乎存在某种问题。
有没有一种简单的方法可以在两个[暴露端口]之间创建连接?
(我看到了一些像netjack2这样的解决方案,但在创建更复杂的服务器客户端架构之前,我想找到一个更优雅的解决方案)。
谢谢您的帮助!