Docker端口映射

Docker端口映射,docker,Docker,假设我有两个应用程序,每个都在一台单独的机器上运行。机器A运行模块A,模块A打开一个端口8080来服务http请求。机器B运行模块B,模块B向模块A发送http请求。假设模块B不知道模块A的IP地址或端口号,它们通过一个数据库表共享此信息,该数据库表的格式为 服务名称| ip地址|端口号 当模块A启动时,它注册自己;当模块B启动时,它通过服务名称查找表 现在,如果A和B都在docker容器中运行,那么如何以编程方式实现相同的功能,从而使一切都自动化呢。我希望看到的是,我启动一个容器a(通过下载其

假设我有两个应用程序,每个都在一台单独的机器上运行。机器A运行模块A,模块A打开一个端口8080来服务http请求。机器B运行模块B,模块B向模块A发送http请求。假设模块B不知道模块A的IP地址或端口号,它们通过一个数据库表共享此信息,该数据库表的格式为

服务名称| ip地址|端口号

当模块A启动时,它注册自己;当模块B启动时,它通过服务名称查找表

现在,如果A和B都在docker容器中运行,那么如何以编程方式实现相同的功能,从而使一切都自动化呢。我希望看到的是,我启动一个容器a(通过下载其打包的映像),然后启动B,应用程序将以与之前相同的方式工作


谢谢

请参阅Docker关于容器链接的文档:问题是模块B可能没有在容器内运行,并且在检查数据库表之前,他们不知道另一个模块在哪里。您在最初的问题中没有概述该场景。您缺少的是所谓的服务发现。Docker社区的一个活跃研究领域正是因为应用程序组件更具移动性。检查以下技术,希望你能感受到什么对你更有用:zookeeper、etcd、Consor。