【发布时间】:2017-08-16 05:20:06
【问题描述】:
当尝试通过 Rancher Cattle 在 Docker 容器中运行时,ZeroMQ 套接字在尝试 .bind() 0.0.0.0:5555 地址时遇到了一点问题。
每次我尝试运行它时,都会遇到同样的错误:
zmq.error.ZMQError: 地址已在使用中。
尝试在我的 Dockerfile 中执行 EXPOSE 5555 和 EXPOSE 5555/tcp,但对我没有帮助。
这是我的代码的一部分:
...
self.context = zmq.Context()
self.socket = self.context.socket(zmq.PUB)
self.socket.bind('tcp://%s:%d' % ('0.0.0.0', 5555))
...
也许有人遇到了同样的问题。如何解决?
【问题讨论】:
-
当然,没有任何变化。我什至尝试在没有这部分代码的情况下运行容器并进入容器的外壳。此端口未使用。
-
'netstat -nlp | 有什么作用? grep :5555' 返回?
-
您是否尝试将其他应用程序绑定到此端口?尝试公开一个简单的 hello-world 网络服务器而不是 ZMQ。只是为了检查它是否不是 ZMQ 特定的。
-
'netstat -nlp | grep :5555' 什么都不返回。
-
我尝试在 0.0.0.0:5555 上运行应用程序,它可以工作。这是0MQ的问题
标签: python sockets docker tcp zeromq