我想把两个容器连接起来。我首先创建一个覆盖网络mynet。
docker network create -d overlay mynet之后,我创建了第一个服务activemq。
docker service create --name activemq -p 61616:61616 -p 8161:8161 --replicas 1 --network mynet rmohr/activemq它启动和工作非常好,我也可以访问WebUI http://localhost:8161/admin/。
现在,我想启动我的服务TimeService,容器中有以下设置:
docker service create --name timeservice -p 7000:7000 --replicas 1 --network mynet ni920/timeserviceplain:latestjava.naming.provider.url=tcp://localhost:61616
java.naming.user=admin
java.naming.password=admin
io.jexxa.rest.host=0.0.0.0
io.jexxa.rest.port=7000因此,它应该通过tcp://localhost:61616与ActiveMQ连接,但它没有。
你们知道我该怎么做吗?在非Swarm环境或Kubernetes-Pod环境中,通信应该完美地工作。
发布于 2020-10-22 00:05:12
如果您希望您的容器相互通信,您可以使用它们的名称,然后让网络驱动程序解析它们的ips。
下面是来自docker文档的网络驱动程序摘要:
在您的示例中,将localhost替换为服务名activemq。
java.naming.provider.url=tcp://activemq:61616
.
.https://stackoverflow.com/questions/64458714
复制相似问题