首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想把两个集装箱连接在一个码头上--蜂群

我想把两个集装箱连接在一个码头上--蜂群
EN

Stack Overflow用户
提问于 2020-10-21 07:32:14
回答 1查看 564关注 0票数 0

我想把两个容器连接起来。我首先创建一个覆盖网络mynet

代码语言:javascript
复制
docker network create -d overlay mynet

之后,我创建了第一个服务activemq

代码语言:javascript
复制
docker service create --name activemq -p 61616:61616 -p 8161:8161  --replicas 1 --network mynet rmohr/activemq

它启动和工作非常好,我也可以访问WebUI http://localhost:8161/admin/

现在,我想启动我的服务TimeService,容器中有以下设置:

代码语言:javascript
复制
docker service create --name timeservice -p 7000:7000  --replicas 1 --network mynet ni920/timeserviceplain:latest
代码语言:javascript
复制
java.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:61616ActiveMQ连接,但它没有。

你们知道我该怎么做吗?在非Swarm环境或Kubernetes-Pod环境中,通信应该完美地工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-22 00:05:12

如果您希望您的容器相互通信,您可以使用它们的名称,然后让网络驱动程序解析它们的ips。

下面是来自docker文档的网络驱动程序摘要

  • 当您需要多个容器在同一个Docker主机上通信时,用户定义的网桥网络是最好的。
  • 当网络堆栈不应与Docker主机隔离时,主机网络是最好的,但您希望容器的其他方面被隔离。
  • 当您需要在不同的Docker主机上运行的容器进行通信,或者当多个应用程序使用群集服务协同工作时,覆盖网络是最好的。
  • 当您从VM安装程序迁移时,或者需要您的容器看起来像网络上的物理主机时,Macvlan网络是最好的,每个容器都有一个唯一的MAC地址。
  • 第三方网络插件允许您将Docker与专门的网络堆栈集成在一起.

在您的示例中,将localhost替换为服务名activemq

代码语言:javascript
复制
java.naming.provider.url=tcp://activemq:61616
.
.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64458714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档