浏览器访问 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>

搭建完成

相关推荐
日取其半万世不竭12 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
weixin_4196583118 小时前
Docker 搭建 Jenkins 服务
java·docker·jenkins
BullSmall21 小时前
Tomcat 部署 Jenkins → Docker Jenkins 完整迁移方案
docker·tomcat·jenkins
ruofu331 天前
下载nvidia_*_cu13的指令(更新:利用torch 版本拉取相关依赖)
docker·容器
独孤--蝴蝶1 天前
Docker容器进阶(一)
运维·docker·容器
AOwhisky1 天前
Linux(CentOS)系统管理入门笔记(第十四期)——计划任务与进程调度管理:atcron 与 nicechrt
linux·运维·笔记·centos·云计算·进程调度·计划任务
冰封之寂1 天前
Docker Compose 容器编排实战:从入门到 LNMP 环境部署-zabbix监控
docker·容器·zabbix
带娃的IT创业者1 天前
原生体验的回归:深入解析 TREK —— 专为 Apple Silicon 打造的轻量级容器方案
macos·docker·虚拟化·开源项目·容器化·apple silicon·trek
心如鉄补1 天前
分布式链路追踪系统之docker-compose安装skywalking
分布式·docker·skywalking
冰封之寂2 天前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算