通过SSH将应用程序安装到docker容器中

时间:2016-11-25 05:37:54

标签: docker ssh

为了给出背景知识,我有一个部署工作流程,可以同时下载并将应用程序安装到多个系统/服务器中。要测试此工作流程,我需要验证500个系统上的并发部署。我无法创建500个VM来测试它。我采用了Docker容器的方法来测试这个工作流程。现在的挑战是如果我启动一个带有公共/静态IP地址的容器并在容器中安装ssh,那么我可以通过ssh登录到这个容器。但我无法启动具有相同配置的另一个容器,因为端口22已被主机上的容器#1使用,并且我无法提供不同的端口,因为我的部署工作流在内部仅使用端口22。

我认为使用端口转发/ NAT可以实现,可以是每当请求到达IP#1,然后使用端口22,当请求到达IP#2时,然后使用端口#27。但我不确定这是否可能。

任何关于此的指示都会非常有用。

1 个答案:

答案 0 :(得分: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上打电话。