我有多个码头集装箱。在本地,他们使用网络和 compose.yml 相互交谈。我已将容器推送到 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
命令应该是一样的。
希望有帮助!
**更新**
如果您正在寻找docker-compose
类似的行为,例如运行一个命令并部署多个应用程序,您可以cf push
使用 manifest.yml 文件来实现这一点。
manifest.yml 文件允许您定义多个应用程序。因此,您可以使用它来部署一系列协同工作的应用程序,就像您经常看到的docker-compose
.
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html
manifest.yml 具有相当大的灵活性,您可以部署基于 buildpack 的应用程序或基于 docker 映像的应用程序。您可以配置路由、绑定服务、健康检查、内存/磁盘配额,如果您使用的是足够新的版本,甚至可以配置进程和边车。也就是说,它不能用 cf cli 完成 100% 的工作,例如,您无法使用 manifest.yml 控制上述网络策略。如果您需要控制未通过 manifest.yml 公开的内容,另一种选择是编写部署脚本。