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 <[email protected]> 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 <[email protected]> wrote: >> Is this using the same version of ZeroMQ in both cases? >> >> On Mon, Dec 29, 2014 at 1:02 AM, Kenneth Adam Miller >> <[email protected]> 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 >>> <[email protected]> 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 >>> [email protected] >>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev >> _______________________________________________ >> zeromq-dev mailing list >> [email protected] >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
