两个独立的Docker容器如何通过ZMQ IPC套接字进行通信?如果可以,如何实现?
例如:
Docker容器#1执行创建ZMQ响应套接字并绑定到“ipc:// tmp / service_name”的应用程序。
Docker容器#2执行创建ZMQ请求套接字并连接到“ipc:// tmp / service_name”的应用程序。
使用以下命令在两个独立的Docker容器中运行这些应用程序:
// Run container #1 (binds to "ipc://tmp/service_name")
docker run --name c1 -it container1
// Run container #2 (connects to "ipc://tmp/service_name")
docker run -it --link c1:container1 --name c2 container2
在运行容器后,我无法建立ZMQ(IPC)连接。但是,我能够从容器2 ping通容器1,并且也能够从容器1 ping通容器2。
我还尝试使用--ipc命令,但没有帮助:
// Run container #1 (binds to "ipc://tmp/service_name")
docker run --name c1 --ipc=host -it container1
// Run container #2 (connects to "ipc://tmp/service_name")
docker run -it --link c1:container1 --ipc=container:c1 --name c2 container2
更新: 我能够使用 ZMQ TCP 套接字在两个不同的 Docker 容器之间进行通信,但是仍然无法使用 IPC 套接字进行通信。这是否可能?