ssh到EC2上托管的docker容器

时间:2018-09-28 13:13:04

标签: amazon-web-services docker ssh

我想在EC2上运行docker容器,并且还需要将ssh放入该容器中以进行调试。我在EC2实例(已应用安全组)上为ssh 22和8022打开了2个端口。问题是,当我要将Docker容器的22端口绑定到端口8022时,它会告知已经使用的地址。该地址由sshd程序使用。如果我终止了该进程,则无法从本地主机SSH到该实例。我该如何克服这种僵局?

1 个答案:

答案 0 :(得分:2)

如评论中所述,您无需在容器内启动ssh即可进入容器。通过运行以下命令进入ec2实例后,可以使用docker exec命令进入容器:

docker exec -it <container-name> bash

如果您仍然想直接ssh到容器中,则需要执行以下操作:

  1. 启动容器并将内部的端口22映射到外部的自由端口;

    docker run -p 2222:22 ...

  2. 启动容器后,执行该操作并安装ssh(如果尚未安装),然后使用类似systemctl start sshd

  3. 的方法启动ssh服务。 通过使用ec2实例IP和映射端口,将
  4. ssh放入容器中

    ssh <container-user>@<ec2-instance-ip> -p 2222

这将连接到ec2实例,并由于端口映射而将您重定向到容器。