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

搭建完成

相关推荐
l1t3 小时前
用docker安装测试crate数据库
数据库·docker·容器·cratedb
zhojiew3 小时前
[INFRA] EMR集群LogPusher组件功能和运行原理分析
aws·emr·bigdata
枕书4 小时前
实战记录:如何使用 Docker 一键部署长亭 PandaWiki 智能知识库
运维·docker·容器
zhojiew5 小时前
[INFRA] EMR集群CWagent组件功能和运行原理分析
aws·emr·bigdata
IT19958 小时前
Docker笔记-对docker-compose.yml基本认识
笔记·docker·容器
supersolon10 小时前
WSL2(Linux)升级docker
linux·运维·docker·wsl·升级
一殊酒10 小时前
【Docker】常用命令大全及解析
docker·容器·eureka
亚马逊云开发者10 小时前
MCP Server 终于能"记住"用户了:AgentCore 有状态会话实战
aws
Uncertainty!!11 小时前
将docker镜像上传到github镜像存储仓库(GitHub 容器仓库(GHCR)使用流程)
docker·容器·github
我是谁??11 小时前
Rocky9+ Docker + 容器内Linux桌面环境 + Web远程
运维·docker·容器