【问题标题】:How docker container can communicate in PCFdocker 容器如何在 PCF 中进行通信
【发布时间】:2018-09-19 20:05:06
【问题描述】:

我有多个 docker 容器。在本地,他们使用网络和 compose.yml 相互交谈。我已将容器推送到 PCF,只是我不知道如何让它们相互通信。谁能帮帮我??

【问题讨论】:

    标签: docker docker-compose cloud-foundry pcf


    【解决方案1】:

    我的理解是,您将利用 Cloud Foundry 的容器到容器网络来执行此操作。

    https://docs.cloudfoundry.org/concepts/understand-cf-networking.html

    默认情况下,容器之间不允许连接,但您可以使用cf cli 允许应用程序之间的特定端口上的连接。只需将您的应用程序配置为在您允许的端口上启动和侦听即可。

    虽然它不是特定于 docker 的,但这里有一个很好的例子。

    https://github.com/cloudfoundry/cf-networking-examples/blob/master/docs/c2c-no-service-discovery.md

    使用 docker 应该略有不同。您显然需要创建自己的 docker 镜像,并确保它们将侦听正确的端口,否则这只是对您推送应用程序的方式的调整(即将 docker 镜像名称传递给 cf push)。 cf add-network-policy 命令应该是一样的。

    希望有帮助!

    ** 更新 **

    如果您正在寻找类似 @​​987654327@ 的行为,例如运行一个命令并部署多个应用程序,您可以使用 cf push 和 manifest.yml 文件来实现。

    manifest.yml 文件允许您定义多个应用程序。因此,您可以使用它来部署一系列协同工作的应用程序,就像您经常看到的 docker-compose

    https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html

    manifest.yml 具有相当大的灵活性,您可以部署基于 buildpack 的应用程序或基于 docker 映像的应用程序。您可以配置路由、绑定服务、健康检查、内存/磁盘配额,如果您使用的是足够新的版本,甚至可以配置进程和 Sidecar。也就是说,它不能用 cf cli 完成 100% 的工作,例如,您无法使用 manifest.yml 控制上述网络策略。如果您需要控制未通过 manifest.yml 公开的内容,另一种选择是编写部署脚本。

    【讨论】:

    • 谢谢丹尼尔,但正如你所说,这不是 docker 特定的。我在想像 docker-compose 这样的东西,它不仅为所有服务创建网络,而且还有链接和东西之类的选项。您刚才所说的方法适用于 PCF 内的任何应用程序,但是 PCF 上是否有类似 docker 的组合工具
    • 对不起,我不明白你的用例。也许你可以解释更多。我能说的就是重申,你不需要做任何特定于 docker 的事情。如果您想在 PCF 上运行的应用程序(任何应用程序)之间进行通信,您只需使用网络策略命令来允许它们之间的访问。无论是 docker 应用程序还是基于 buildpack 的应用程序或将来添加的某些新应用程序类型都没有关系。都是一样的。
    • 嘿@DanielMikusa 你能在cloud Foundry中实现docker-compose吗?
    • @ChetanHireholi 抱歉,不确定您的意思。 docker-compose 是一个完全独立于 Cloud Foundry 的工具。您能详细说明您在此处查找的内容吗?
    • @DanielMikusa 感谢您的回复。我知道两者是完全不同的工具,我一直在寻找在 Cloud Foundry 中进行“docker-compose up”的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多