簡體   English   中英

如何使docker容器與非dockerized應用程序通信?

[英]How to make docker containers talk to a non-dockerized application?

我有一種情況,Docker容器必須與其他主機中的非dockerized應用程序和docker容器進行通信。

假設有三台服務器A,B和C.服務器A有兩個運行JBoss App Server容器的docker容器。 服務器B,非docker主機有MySQL DB。 服務器C有另一組容器。

我希望JBoss應用程序服務器容器與駐留在另一台主機中的MySQL DB連接,並從數據庫中提取信息。 JBoss還必須討論駐留在服務器C中的容器。

如何實現這一目標?

PS:我是Docker的新手

橋接/用戶定義的橋接網絡中的容器可以自動訪問外部世界。 這通過IP偽裝發生,Docker負責處理。

  • mysql db在服務器B中
  • 服務器A有一條到達運行mysql db的服務器B的路由。
  • 服務器A中有2個容器

假設如上所述,2個容器應該能夠到達mysql db。

關於容器在localhost中訪問服務還有另一個常見問題。 您可以在此處參考該討論( 從Docker容器內部,如何連接到本機的本地主機?

回答更新的問題:

當您將容器置於覆蓋網絡中的群集模式時,它還會創建一個橋接網絡(docker_gwbridge)。 默認情況下會為外部訪問創建此橋。 你是對的,在這種情況下,容器是覆蓋和橋接網絡的一部分。 使用覆蓋網絡,服務器A中的容器可以與服務器C中的容器通信。對於服務器A中的容器到達DB(非容器化應用程序),您只需要可以從容器內部直接訪問的數據庫的IP地址和端口。 只要可以從服務器A訪問DB IP地址,就可以使用橋接網絡從服務器A中運行的容器內部訪問它。 您不需要任何特殊的DNS標志或其他任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM