我有一個Docker容器必須與其他主機中的非dockerized應用程序和docker容器進行通信的情況。如何使碼頭集裝箱與非碼頭應用程序交談?
假設有三臺服務器A,B和C.服務器A有兩個運行JBoss App Server容器的Docker容器。服務器B,非docker主機擁有MySQL DB。服務器C有另一組容器。
我希望JBoss應用程序服務器容器與位於另一主機上的MySQL DB連接並從數據庫中提取信息。 JBoss還必須談論服務器C中的容器。
如何使這發生?
PS:我是新來的碼頭工人在橋/用戶自定義橋接網絡
嗨@Sreeni不可能在疊加模式下做到這一點?還有一個查詢。運行命令中DNS標誌的用途是什麼?我可以在docker run命令中提供--dns標誌指向駐留在服務器B中的數據庫嗎? –
嗨Aditya,你可以使用覆蓋網絡連接2個容器,但你需要使用網橋來達到DB的IP。在覆蓋網絡中,docker_gwbridge提供外部連接。 DNS標誌允許您使用外部DNS服務器。默認情況下,docker在Docker引擎中使用dns服務器,並在其中找不到名稱,它使用主機的DNS服務器。我在這裏捕獲了常見的Docker網絡問題和解決方案(https://www.slideshare.net/SreenivasMakam/docker-networking-common-issues-and-troubleshooting-techniques)。請看看它是否有幫助。 – Sreeni
嗨@Sreeni我編輯了原始問題。 AFAIK,容器可以是多個網絡的一部分。因此,A和C服務器中的容器可以利用覆蓋。雖然A和MySQL DB中的容器可以利用用戶定義的橋接網絡。我對麼?但是我仍然困惑如何讓容器指向非dockerized應用程序?有沒有特定的命令來實現這一點,或者是否有任何特定的標誌,如--dns?我很抱歉拿出很多問題:) –