我想在 EC2 上运行一个 docker 容器,我还需要通过 ssh 进入容器以进行调试。我在我的 EC2 实例(已应用安全组)上为 ssh 22 和 8022 打开了 2 个端口。问题是当我想将 docker 容器的 22 端口绑定(bind)到端口 8022 时,它会告诉地址已在使用中。并且该地址被 sshd 程序使用。如果我终止该进程,那么我就无法从我的本地主机通过 ssh 连接到该实例。我怎样才能克服这个僵局?

请您参考如下方法:

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

docker exec -it <container-name> bash 

如果你还想直接ssh到容器中,那么你需要做如下操作:

  1. 启动容器,将里面的22端口映射到外面的空闲端口;

    docker run -p 2222:22 ...

  2. 启动容器后,执行它并安装 ssh(如果尚未安装),然后使用类似 systemctl start sshd 的方式启动 ssh 服务。

  3. 使用 ec2 实例 IP 和映射端口通过 ssh 进入容器

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

这将连接到 ec2 实例并根据端口映射将您重定向到容器。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!