[zeromq-dev] Connection refused error exclusively in Dockerized app

Andre Caron andre.l.caron at gmail.com
Mon Dec 29 17:00:25 CET 2014


Inproc transport doesn't work across processes regardless of Docker, so I doubt mounting something would work (that might help with the ipc transport though).

André

> On Dec 29, 2014, at 3:44 AM, Benjamin <benjamin.l.cordes at gmail.com> wrote:
> 
> Most likely this is an issue with docker. Inside a container processes
> don't know about the outside. You have to specifically mount something
> or use the ports flag [1] or ambassadors [2]. Using inproc between
> host and container will not work. Containers have process isolation.
> Containers map closely to contexts which then use tcp to communicate.
> 
> It does make sense combining ZMQ and docker. Unfortunately while
> dotcloud has done work with zeromq [2], [3] the docker semantics are
> based on HTTP/JSON style communication. Depending on what you're
> trying to do, docker might be a lot of overhead.
> 
> 
> [1] https://docs.docker.com/installation/mac/#container-port-redirection
> [2] https://docs.docker.com/articles/ambassador_pattern_linking/
> [3] https://github.com/dotcloud/zerorpc-python
> [4] http://www.infoq.com/presentations/Distributed-Systems-with-ZeroMQ-and-gevent
> 
>> On Mon, Dec 29, 2014 at 9:25 AM, Pieter Hintjens <ph at imatix.com> wrote:
>> Is this using the same version of ZeroMQ in both cases?
>> 
>> On Mon, Dec 29, 2014 at 1:02 AM, Kenneth Adam Miller
>> <kennethadammiller at gmail.com> wrote:
>>> I found out that doing a socket connection on an inproc that hasn't been
>>> bound to yet before is what is causing the error. Strange thing is, in
>>> docker this fails with an exception. On my host, it works fine.
>>> 
>>> Does anybody know what the best path forward would be? I basically have a
>>> subscriber being launched before the publisher, just as the missed message
>>> debugger says I should. Those subscribers make connect calls, but the
>>> publisher makes a bind. Every thing works as required on the host. But in
>>> docker, it blows up at the connect line.
>>> What do I do to get it to work?
>>> 
>>> On Thu, Dec 25, 2014 at 10:51 AM, Kenneth Adam Miller
>>> <kennethadammiller at gmail.com> wrote:
>>>> 
>>>> I have a dockerized ZMQ instance where I am trying to develop an app. I
>>>> have duplicate source both inside the docker instance and at the host level.
>>>> I can compile both inside and out with duplicate compiler output and both
>>>> compile.
>>>> 
>>>> The problem is, there has to be some difference between the docker ubuntu
>>>> instance and the host, because when I run the docker ubuntu instance, I get
>>>> an error at runtime with my unit tests:
>>>> 
>>>> terminate called after throwing an instance of 'zmq::error_t'
>>>>  what():  Connection refused
>>>> 
>>>> But the unit tests run to completion on the host.
>>>> I've debugged it, and put print statements, and I know for certain that
>>>> the docker instance is failing at a socket connect call.
>>>> 
>>>> sock = new zmq::socket_t(ctxt, ZMQ_SUB);
>>>> 
>>>> sock->connect("inproc://something");  //<-- FAILS HERE!
>>>> 
>>>> Currently I have some confusion as to why it works this way in the host,
>>>> because I have a subscriber connecting to an inproc instance that doesn't
>>>> have anything bound at yet, but the missing message problem solver in the
>>>> ZMQ guide says start subscribers first and then the publisher. In any case,
>>>> it works very well on the host.
>>>> 
>>>> Can anybody tell me how to debug a connection refused error?
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev



More information about the zeromq-dev mailing list