2016-11-25 120 views
2

爲了給出背景,我有一個部署工作流程,它同時將應用程序下載並安裝到多個系統/服務器中。爲了測試這個工作流程,我需要驗證500個系統上的併發部署。我無法創建500個虛擬機來測試它。我採用了Docker容器的方法來測試這個工作流程。現在的挑戰是如果我使用公共/靜態IP地址啓動一個容器並在容器中安裝ssh,那麼我可以通過ssh登錄到這個容器。但是因爲端口22的主機上已經使用的容器#1,我不能開始與相同配置aother容器中,我不能給不同的端口,因爲我展開工作流程內部只使用端口22通過SSH將應用程序安裝到Docker容器中

我認爲使用端口轉發/ NAT這個可以實現,可以是每當請求到達IP#1時,然後使用端口22,並且當請求到達IP#2時,然後使用端口#27。但我不確定這是否可能。

對此的任何指針都會非常有幫助。

回答

3

首先,docker將容器端口映射到不同的主機端口 - 使用-p啓動容器。

docker run mycontainer -p 10001:22 
docker run mycontainer -p 10002:22 
docker run mycontainer -p 10003:22 
etc. 

docker run reference

-p = []:發佈容器端口或一組端口到主機的。

編輯:我想我誤解你的ssh的使用。

部署工作流程是通過ssh連接到每個容器(推送)還是聯繫(拉)?如果推送,只需推送給500個客戶,例如:10001至10501。如果拉動,所有客戶無論如何都會打22。

相關問題