docker需要设置ipc相关参数才能绑定ipc地址吗

发布于 2022-09-11 20:53:35 字数 635 浏览 18 评论 0

本人对IPC不太了解,尝试用如下python代码企图绑定一个IPC地址来向其它进程共享数据

import zmq #对应pyzmq这个包

context = zmq.Context()
socket_to_others = context.socket(zmq.PUB)
socket_to_others.bind('ipc://test_addr')

在docker里面跑这段代码报错如下,说我没权限:Operation not permitted

换成socket_to_others.bind('tpc://0.0.0.0:9999')就正常,说明是ipc不行

查了一下docker是有ipc相关的一些参数可以设置的,不知是不是要正确设置才能用起来?
我用docker-compose来启动的,以下是我的docker-compose.yml相关参数:

privileged: true
cap_add:
    - ALL
ipc: host

我是windows的docker-desktop,目前也以管理员身份运行docker-desktop了,然后也以管理员身份启动了cmd再docker-compose up了,依然报错

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你好,陌生人 2022-09-18 20:53:35

该错误消息告诉您当前用户无法访问docker引擎,因为您缺少访问unix套接字以与引擎通信的权限。

作为临时解决方案,您可以使用sudo以root身份运行失败的命令(例如sudo docker ps)。
但是,建议通过将当前用户添加到 docker组来解决此问题 :

在shell中运行此命令,然后完全注销您的帐户并重新登录(或退出您的SSH会话并重新连接,如果有疑问,请重新启动您尝试运行docker的计算机!):

sudo usermod -a -G docker $ USER
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文