阿里云部署小白教程

一、准备工作

  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 容器名字
相关推荐
掘金安东尼5 小时前
本周前端与 AI 技术情报|前端下一步 #462
前端·javascript·面试
赵庆明老师5 小时前
vben开发入门5:vite.config.ts
前端·html·vue3·vben
qq_12084093715 小时前
Three.js 工程向:实例化渲染 InstancedMesh 的批量优化
前端·javascript
起这个名字5 小时前
LangGraphJs 核心概念、工作流程理解及应用
前端·人工智能
小赵同学WoW5 小时前
vue组件基础知识
前端
牛奶5 小时前
浏览器藏了这么多神器,你居然不知道?
前端·chrome·api
WebInfra5 小时前
Rspack 2.0 正式发布!
前端·javascript·前端框架
极速蜗牛5 小时前
Cursor最近变傻了?
前端
码字小学妹5 小时前
Claude Opus 4.7 接入指南(2026):国内配置 + xhigh 推理 + 成本计算
前端
小赵同学WoW5 小时前
插槽【vue2】与 【vue3】对比
前端