【问题标题】:what is the best approach to create docker containers that are able to communicate with each other?创建能够相互通信的 docker 容器的最佳方法是什么?
【发布时间】:2022-01-08 20:08:04
【问题描述】:

我正在编写一个管道脚本,我有一个服务器容器和一个在服务器上运行某些混乱测试的客户端容器,当使用 Kuubernetes 时,我注意到所有容器都在 localhost 上,这将导致我的测试失败,那又如何拥有 2 个可以在不同 IP/主机名上通信的容器是正确的方法吗?

【问题讨论】:

    标签: docker kubernetes docker-compose jenkins-pipeline


    【解决方案1】:

    我对 jenkins 了解不多,但在 Kubernetes 中,pod 内的所有容器都将使用 localhost 进行通信。它的行为类似于 sidecar 应用程序,而不是客户端-服务器应用程序。

    如果您想模拟客户端和服务器应用程序,我建议使用 2 个 Kubernetes pod(1 个 pod 用于服务器,1 个 pod 用于客户端)。

    【讨论】:

    • 有人告诉我,我可以使用 docker-compose 而不是使用 kubernetes,你认为这对我有用吗?
    • 是的,如果你使用 docker 你可以做到。
    • 您可以阅读Networking in (Docker) ComposeDNS for (Kubernetes) Services and Pods 作为起点。为了再次强调@Raymond 的回答,您通常只需要 Kubernetes Pod 中的一个容器,并且您需要为客户端和服务器分别部署部署。
    • 使用 docker-compose(或 docker swarm),您可以使用服务名称作为目标 FQDN。不确定它是否在 K8S 中以同样的方式工作
    猜你喜欢
    • 2015-11-01
    • 2019-10-09
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2017-01-28
    • 1970-01-01
    相关资源
    最近更新 更多