阿里云部署小白教程

一、准备工作

  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

    将前端项目文件(包括 Dockerfile、package.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 容器名字
相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万4 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋4 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁4 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95274 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大4 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师4 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学4 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端