如何将托管在 aws 上的 dockerized 应用程序从端口 3000 映射到根 url?

How do I map a dockerized application hosted on aws from port 3000 to the root url?

我目前正在使用 docker-machine 通过 port:3000 为 mern 应用提供服务。

一切正常 - 但是我的应用程序在 my-ip:3000 上运行。我不希望用户必须导航到 myurl.com:3000。从 my-ip/ 而不是 my-ip:3000 访问应用程序的最简单解决方案是什么。我在 aws 上使用 ec2 和 route53。

docker-machine create --driver amazonec2 <my-app> 刚刚创建名为 my-app 的 EC2 VM。

假设 EC2 VM 是您的 docker 命令的默认 docker 主机;最简单的方法是将主机端口绑定到容器端口,如下所示 docker run -p 80:3000 image-name 当您 运行 您的容器时。

或者(稍微复杂一些),您可以托管一个 NGINX 容器来侦听端口 80 并代理到您在端口 3000 上的应用,例如

server {
   listen 80 default_server;
   listen [::]:80 default_server;

   location / {
      proxy_pass http://my-app:3000;
   }
}