为了给出背景知识,我有一个部署工作流程,可以同时下载并将应用程序安装到多个系统/服务器中。要测试此工作流程,我需要验证500个系统上的并发部署。我无法创建500个VM来测试它。我采用了Docker容器的方法来测试这个工作流程。现在的挑战是如果我启动一个带有公共/静态IP地址的容器并在容器中安装ssh,那么我可以通过ssh登录到这个容器。但我无法启动具有相同配置的另一个容器,因为端口22已被主机上的容器#1使用,并且我无法提供不同的端口,因为我的部署工作流在内部仅使用端口22。
我认为使用端口转发/ NAT可以实现,可以是每当请求到达IP#1,然后使用端口22,当请求到达IP#2时,然后使用端口#27。但我不确定这是否可能。
任何关于此的指示都会非常有用。
答案 0 :(得分:3)
首先,docker将容器端口映射到不同的主机端口 - 使用-p。
启动容器docker run mycontainer -p 10001:22
docker run mycontainer -p 10002:22
docker run mycontainer -p 10003:22
etc.
-p = []:将容器端口或一系列端口发布到主机。
修改:我认为我误读了你对ssh的使用。
部署工作流是通过ssh(推送)连接到每个容器还是联系(拉)?如果推送,只需推送到500个客户端,例如:10001到:10501。如果拉,所有客户都会在22上打电话。