我有一個應用程序,我目前通過Docker Compose文件在單個主機上運行。這些容器通過一個RabbitMQ容器相互通信(所以它們都鏈接在一起)。該應用程序開始需要比單個主機能夠提供更多的資源,所以我認爲Docker Swarm將是理想的,因爲我應該能夠通過相同的Compose文件啓動相同的一組容器,但是在分佈式節點上。Docker Swarm + Docker撰寫:在不同的節點上運行鏈接的容器?
但是,看起來鏈接容器被限制在同一個節點上,因此在多個節點上設置Docker Swarm不會導致我正在查找的容器分佈。
大使模式似乎是分離鏈接容器的推薦方式(通過爲每個節點上的鏈接容器設置代理),但是我在使用docker-compose文件時遇到了問題,因爲示例I'已經看過使用docker run設置每個節點,然後使用運行共享服務的節點的IP(在我的情況下是RMQ)來設置一個環境變量,告訴客戶端的大使容器在哪裏爲鏈接服務路由數據(如https://docs.docker.com/engine/admin/ambassador_pattern_linking/)。如何將其轉換爲Compose文件,以便我不需要知道該服務將在哪個IP上運行(因爲Docker Swarm將在Compose文件完成後決定)?