我需要在受控環境中測試我的kafka
消費者和消息觸發器。所以我做了一個ansible
項目來創建一些模擬kafka
服務器:mokafelk。如何讓不同的Docker容器相互對話而不將端口暴露給全世界
它工作正常,除了安全是狗屎。默認情況下,playbook
會啓動一個3節點dockerized
kafka
羣集,但kafka服務器上的偵聽端口會暴露給所有羣集。以下是用於創建羣集的Dockerfile
的jinja2
template。
基本上我希望容器能夠互相交談。我不認爲容器鏈接是一種選擇,因爲在我看來,鏈接只是單向的。但是使用127.0.0.1:{{ port }}:{{ port }}
暴露端口只會將端口暴露給主機,並且如果我是正確的,則不會將端口暴露給其他容器。 0.0.0.0:{{ port }}:{{ port }}
將該端口展示給全世界。那麼,我怎麼能連接兩個+容器?這必須是一個常見的問題,但我似乎還沒有找到一個快速的解決方案......
謝謝隊友的答案我hv從來沒有嘗試過,但使IP地址硬編碼內腳本是不好的做法,以及沒有?它還假設沒有其他容器在運行開始時運行 – lingxiao
只需閱讀您發佈的鏈接。我不知道用戶定義的'docker'網絡。它似乎是一個新功能。 'docker network create --driver bridge isolated_nw'創建一個新的網絡,並且在這個用戶定義的網絡中創建所有的容器將允許它們通過名稱自動相互通信,這在默認網橋網絡中不受支持。 – lingxiao