我有一个应用程序在 Docker 容器内运行,在端口 8000 上的私有 EC2 机器内。
我的目标是通过在我的浏览器中访问
localhost:8000
,从我的本地机器连接到这个应用程序。
为此,我在与私有实例相同的 VPC 中设置了一个公共 EC2 机器,并打开了端口 22。
我可以通过 ssh 进入公共实例
ssh -A -L 8000:localhost:8000 ubuntu@public-ec2-ip
然后,在公共实例中,我可以再次运行
ssh -A -L 8000:localhost:8000 ubuntu@private-ec2-ip
并连接到私有实例就好了。当我这样做时,我看到应用程序在本地计算机上的 localhost:8000
上运行。
问题是我无法从本地计算机运行单个 ssh 命令来访问私有实例中的 Docker 应用程序。
我试过本地端口转发
ssh -L 8000:private-ec2-ip:8000 ubuntu@public-ec2-ip
但这是行不通的。我想我需要以某种方式在我的 ssh 命令中绑定私有机器的localhost
,因为这是 docker 绑定到的(不是实例的私有 IP)。
如果有人有任何建议(不改变实例的架构设计),我将不胜感激。