我想在EC2上运行docker容器,并且还需要将ssh放入该容器中以进行调试。我在EC2实例(已应用安全组)上为ssh 22和8022打开了2个端口。问题是,当我要将Docker容器的22端口绑定到端口8022时,它会告知已经使用的地址。该地址由sshd程序使用。如果我终止了该进程,则无法从本地主机SSH到该实例。我该如何克服这种僵局?
答案 0 :(得分:2)
如评论中所述,您无需在容器内启动ssh即可进入容器。通过运行以下命令进入ec2实例后,可以使用docker exec命令进入容器:
docker exec -it <container-name> bash
如果您仍然想直接ssh到容器中,则需要执行以下操作:
启动容器并将内部的端口22映射到外部的自由端口;
docker run -p 2222:22 ...
启动容器后,执行该操作并安装ssh(如果尚未安装),然后使用类似systemctl start sshd
ssh放入容器中
ssh <container-user>@<ec2-instance-ip> -p 2222
这将连接到ec2实例,并由于端口映射而将您重定向到容器。