浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置

  1. Dockerfile 确保监听 80 端口

    复制代码
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]

    复制代码
    EXPOSE 80
    CMD ["python3", "-m", "http.server", "80"]
  2. 任务定义(Task Definition)

    • 设置 容器端口为 80

    • 映射到宿主机端口(如果是 EC2 模式)

    • 如果是 Fargate,只需定义容器端口即可


✅ 二、服务启动(Service)

  • 使用该 Task Definition 创建 ECS 服务

  • 网络模式(Fargate 通常用 awsvpc,EC2 可用 bridgehost


✅ 三、负载均衡(可选但推荐)

🔹 方式 A:使用 Application Load Balancer(ALB)
  1. 创建 ALB(或者使用已有的)

  2. 创建一个 Target Group,目标类型为 IP 或 instance

  3. 配置 ECS 服务时,绑定该 Load Balancer

  4. 配置监听器:

    • HTTP(端口 80) -> Forward 到 Target Group
🔹 方式 B:不使用负载均衡(仅限 EC2 模式)

如果你用的是 EC2 Launch Type 并且将容器绑定在 EC2 主机的 80 端口:

  • 直接通过 EC2 实例公网 IP 访问,例如:

    复制代码
    http://<EC2 公网 IP>

✅ 四、安全组设置

  1. ECS 服务关联的安全组

    • 开放端口 80,来源为 0.0.0.0/0(公网访问)
  2. 如果使用 ALB

    • ALB 的安全组也要开放 80

    • 容器的安全组允许来自 ALB 的访问(源为 ALB 安全组)


✅ 五、VPC 子网和路由

  • ECS 任务或服务必须运行在 公有子网(子网的路由表连通到 Internet Gateway)

  • Fargate 模式必须开启 Auto-assign public IP


✅ 六、测试访问

如果都设置正确,访问 URL 如下:

示例:
  • 使用 ALB:

    复制代码
    http://<ALB-DNS-NAME>
  • 使用 EC2:

    复制代码
    http://<EC2-Public-IP>

搭建完成

相关推荐
星霜笔记4 小时前
Docker 部署 MariaDB+phpMyAdmin+Nextcloud 完整教程
运维·数据库·docker·容器·mariadb
数据知道6 小时前
容器化部署:用Docker封装机器翻译模型与服务详解
docker·容器·机器翻译
敲上瘾13 小时前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups
伊成15 小时前
Docker 部署 Nginx 完整指南
nginx·docker·容器
落日漫游16 小时前
K8s核心组件全解析
运维·docker·运维开发
是乐谷18 小时前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
江湖有缘19 小时前
【Docker项目实战】使用Docker部署Notepad轻量级记事本
docker·容器·notepad++
青岛佰优联创新科技有限公司20 小时前
移动板房的网络化建设
服务器·人工智能·云计算·智慧城市
BTU_YC21 小时前
docker compose部署mysql
mysql·adb·docker
夕阳与风馨21 小时前
三分钟搞懂云计算三大模型:SaaS、PaaS、IaaS 是怎么在业务中“各司其职”的?
后端·云计算