阿里云部署小白教程

一、准备工作

  1. 确保 ECS 已安装 Docker

    登录 ECS 服务器(通过 SSH 工具,如 Xshell、终端),执行以下命令安装 Docker(以 CentOS 为例):

    bash 复制代码
    # 安装Docker
    sudo yum install -y docker
    # 启动Docker并设置开机自启
    sudo systemctl start docker
    sudo systemctl enable docker
    # 验证安装(显示版本即成功)
    docker --version
  2. 上传项目代码到 ECS

    将前端项目文件(包括 Dockerfilepackage.json、源代码等)上传到 ECS 的任意目录(例如 /home/project)。

    • 可通过 scp 命令上传(本地终端执行):

      ruby 复制代码
      scp -r 本地项目路径 root@8.134.155.9:/home/project
    • 或通过工具(如 FileZilla)可视化上传。

二、构建 Docker 镜像

  1. 进入项目目录

    bash 复制代码
    cd /home/project  # 替换为你的项目存放路径
  2. 构建镜像

    执行以下命令,根据 Dockerfile 构建镜像(镜像名可自定义,如 frontend-app):

    erlang 复制代码
    sudo docker build -t frontend-app .
    • 过程说明:

      • 会先拉取 node:18-alpine 镜像安装依赖并构建项目(npm run build)。
      • 再基于 nginx:alpine 镜像,将构建产物(build 目录)复制到 Nginx 的默认静态文件目录(/usr/share/nginx/html)。
    • 若构建失败,检查 Dockerfile 语法(如路径是否正确)、网络是否通畅(需拉取镜像)。

三、运行 Docker 容器(关键:映射 80 端口)

Dockerfile 中 EXPOSE 80 仅声明容器内 Nginx 监听 80 端口,需通过 -p 参数将容器 80 端口映射到 ECS 的 80 端口,才能通过域名访问:

arduino 复制代码
sudo docker run -d -p 80:80 --name frontend-container frontend-app
  • 参数说明:

    • -d:后台运行容器。
    • -p 80:80:将 ECS 的 80 端口映射到容器内的 80 端口(左侧是 ECS 端口,右侧是容器端口)。
    • --name frontend-container:给容器命名(方便后续管理)。
    • frontend-app:使用前面构建的镜像名。

四、配置 ECS 安全组(允许 80 端口访问)

阿里云 ECS 默认会拦截端口访问,需在安全组开放 80 端口:

  1. 登录阿里云控制台

    进入「云服务器 ECS」→ 找到实例 → 左侧「安全组」。

  2. 添加 80 端口规则

    • 点击「配置规则」→「入方向」→「添加规则」。

    • 填写参数:

      • 协议类型:TCP
      • 端口范围:80/80
      • 授权对象:0.0.0.0/0(允许所有 IP 访问,生产环境可限制来源)
      • 描述:允许80端口访问前端页面
    • 保存规则(立即生效)。

五、验证部署结果

  1. 检查容器是否正常运行

    bash 复制代码
    sudo docker ps  # 查看运行中的容器,确保 frontend-container 状态为 Up
    • 若未运行,执行 sudo docker logs frontend-container 查看日志排查错误(如端口冲突)。
  2. 访问页面

    在本地浏览器输入:

    arduino 复制代码
    http://+公网IP(或者域名)
    • 若显示你的前端页面,说明部署成功。

    • 若无法访问,按以下顺序排查:

      1. 容器是否运行:docker ps
      2. 容器 80 端口是否映射到 ECS 80 端口:docker port frontend-container(应显示 80/tcp -> 0.0.0.0:80
      3. ECS 防火墙是否开放 80 端口(临时关闭测试:sudo systemctl stop firewalld
      4. 安全组规则是否正确(重点检查授权对象是否为 0.0.0.0/0

六、后续管理(可选)

  • 重启容器sudo docker restart frontend-container

  • 更新项目

    1. 上传新代码到 ECS 并重新构建镜像:docker build -t frontend-app .
    2. 停止旧容器:docker stop frontend-container
    3. 删除旧容器:docker rm frontend-container
    4. 运行新容器:docker run -d -p 80:80 --name frontend-container frontend-app

总结

核心流程:上传代码 → 构建镜像 → 运行容器(映射80端口) → 开放安全组80端口

关键是确保 ECS 80 端口与容器 80 端口映射成功安全组允许 80 端口入站,最终通过公网 IP 直接访问页面。

  • 你的项目文件(包括Dockerfile、源代码等)已经上传到了阿里云 ECS 服务器(如/home/project目录)。

  • 构建镜像时,Docker 需要读取服务器上的Dockerfile和项目文件,并在服务器的 Docker 引擎中执行构建过程(下载依赖、编译代码等)。

正确操作步骤:

  1. 用 SSH 工具(如终端、Xshell)远程连接到阿里云 ECS

    bash 复制代码
    ssh root@你的公网IP  # 输入服务器密码登录
  2. 在 ECS 的终端中,进入项目文件所在目录(例如/home/project):

    bash

    bash 复制代码
    cd /home/project
  3. 执行构建命令:

    bash

    erlang 复制代码
    sudo docker build -t frontend-app .

这样构建出的镜像会保存在阿里云 ECS 的 Docker 环境中,后续可以直接在 ECS 上运行容器。

下次重新启动可以直接用

复制代码
sudo docker restart 容器名字
相关推荐
tedcloud1232 小时前
UI-TARS-desktop部署教程:构建AI桌面自动化系统
服务器·前端·人工智能·ui·自动化·github
UXbot5 小时前
AI原型设计工具如何支持团队协作与快速迭代
前端·交互·个人开发·ai编程·原型模式
ZC跨境爬虫6 小时前
跟着MDN学HTML_day_48:(Node接口)
前端·javascript·ui·html·音视频
PieroPc8 小时前
CAMWATCH — 局域网摄像头监控系统 Fastapi + html
前端·python·html·fastapi·监控
巴巴博一9 小时前
2026 最新:Trae / Cursor 一键接入 taste-skill 完整教程(让 AI 前端告别“AI 味”)
前端·ai·ai编程
kyriewen9 小时前
半夜三点线上崩了,AI替我背了锅——用AI排错,五分钟定位三年老bug
前端·javascript·ai编程
kyriewen9 小时前
我让 AI 当了 24 小时全年无休的“毒舌考官”
前端·ci/cd·ai编程
hexu_blog9 小时前
vue+java实现图片批量压缩
java·前端·vue.js
IT_陈寒10 小时前
为什么你应该学习JavaScript?
前端·人工智能·后端
lifejump10 小时前
Empire(帝国)CMS 7.5 XSS注入
前端·安全·xss