阿里云ECS Docker容器化部署实战教程

发布时间:2026/8/14 12:45:29
阿里云ECS Docker容器化部署实战教程 阿里云ECS Docker容器化部署实战教程难度中级 | 预计耗时45 分钟 | 费用约¥30前言本教程旨在指导中级开发者在阿里云 ECS 实例上完成 Docker 容器化部署全流程。通过实战演练你将掌握从环境搭建、镜像构建到容器编排的核心技能。重点讲解如何利用 ECS 的高可用性与 Docker 的轻量级特性实现应用快速迭代与弹性伸缩。学完后你不仅能独立部署 Web 服务还能理解容器化对运维效率的提升为后续学习 Kubernetes 打下坚实基础。教程将结合具体配置参数确保环境可复现帮助你快速构建生产级容器化应用架构。准备工作拥有阿里云账号并完成实名认证。2. 准备一台 ECS 实例推荐 2 核 4GCentOS 7.9 或 Ubuntu 20.04。3. 本地安装 SSH 客户端与 VS Code 远程插件。4. 安装 Docker CLI 与 Git 工具。5. 确保本地有可部署的示例代码仓库。注意ECS 安全组需开放 22 端口镜像仓库建议配置私有镜像加速。购买 ECS 时选择按量付费或短期包年以控制成本避免资源浪费。步骤总览第一步创建并连接阿里云 ECS 实例第二步安装 Docker Engine 环境第三步安装 Docker Compose 编排工具第四步准备应用代码与目录结构第五步编写 Dockerfile 镜像构建文件第六步构建 Docker 镜像第七步配置安全组与网络策略第八步运行容器并映射端口第九步配置持久化存储与数据卷第十步监控日志与资源清理详细步骤步骤 1第一步创建并连接阿里云 ECS 实例登录阿里云控制台进入 ECS 管理页面。选择“创建实例”地域建议选择离用户最近的节点如“华北 2北京”。实例规格选择通用型 g6 或计算型 c6配置 2 核 4G 内存系统盘选择 40GB ESSD。网络类型选择 VPC安全组规则需放行 22 端口用于 SSH 连接。购买后在“实例列表”点击连接获取公网 IP 和默认用户名 root。使用终端命令 ssh rootECS_IP 登录服务器输入密码验证确保网络连通性正常这是后续部署的基础环境。步骤 2第二步安装 Docker Engine 环境登录服务器后首先更新系统包管理器。执行命令 yum update -y 确保系统最新。接着安装 Docker 依赖包使用 yum install -y docker-ce docker-ce-cli containerd.io。启动 Docker 服务并设置开机自启命令为 systemctl start docker systemctl enable docker。验证安装是否成功输入 docker version 查看版本信息确保服务端与客户端版本兼容。此时 Docker 守护进程已在后台运行默认监听 TCP 2375 端口但为了安全建议后续配置 TLS 或使用 Unix Socket。yum update-yyuminstall-ydocker-ce docker-ce-cli containerd.io systemctl startdockersystemctlenabledockerdockerversion步骤 3第三步安装 Docker Compose 编排工具为了简化多容器应用管理需安装 Docker Compose。推荐使用 pip 安装最新稳定版。首先安装 pip3命令为 yum install -y python3-pip。然后使用 pip3 install docker-compose 进行安装。安装完成后验证版本输入 docker-compose --version。若网络受限可配置国内镜像源加速。Docker Compose 允许通过 YAML 文件定义多容器服务支持一键启动、停止和重建极大提升开发效率是容器化部署的标准工具之一。yuminstall-ypython3-pip pip3installdocker-composedocker-compose--version步骤 4第四步准备应用代码与目录结构在本地或服务器创建项目目录例如 mkdir -p /app/my-webapp cd /app/my-webapp。将示例代码上传至服务器可使用 git clone 或 scp 命令。目录结构应包含 src 目录存放源代码Dockerfile 存放构建指令docker-compose.yml 定义服务配置。确保代码中包含 package.json 或 requirements.txt 等依赖文件。合理的目录结构有助于维护避免生产环境配置混乱。若代码在本地使用 scp -r /local/path rootECS_IP:/app/my-webapp 传输。mkdir-p/app/my-webappcd/app/my-webapp# 假设已上传代码gitclone https://github.com/example/demo.git.步骤 5第五步编写 Dockerfile 镜像构建文件在项目中创建 Dockerfile。基于官方基础镜像如 FROM python:3.9-slim。设置工作目录 WORKDIR /app。复制依赖文件 COPY requirements.txt . 并安装依赖 RUN pip install -r requirements.txt。复制源代码 COPY . . 设置启动命令 CMD python app.py。注意使用多阶段构建可减小镜像体积例如先构建再运行。Dockerfile 中的指令顺序应优化缓存将变动小的指令放在前面。构建完成后镜像大小应控制在合理范围建议不超过 500MB 以保证拉取速度。FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [python, app.py]步骤 6第六步构建 Docker 镜像在 Dockerfile 所在目录下执行构建命令。使用 docker build -t my-webapp:latest . 指定镜像名称和标签。构建过程会读取 Dockerfile 并逐层执行指令输出日志显示构建进度。构建完成后使用 docker images 查看本地镜像列表确认 my-webapp 已存在。若构建失败检查 Dockerfile 语法或网络连通性。构建的镜像可推送到阿里云容器镜像服务ACR实现私有化存储便于后续多实例部署与版本管理增强安全性。dockerbuild-tmy-webapp:latest.dockerimages步骤 7第七步配置安全组与网络策略在阿里云控制台找到 ECS 实例所属的安全组编辑入方向规则。新增一条规则协议选择 TCP端口范围 8080授权对象为 0.0.0.0/0 允许公网访问。若使用 HTTPS需额外开放 443 端口。确保 ECS 内部防火墙如 firewalld也放行相应端口命令 firewall-cmd --add-port8080/tcp --permanent。安全配置是防止未授权访问的关键建议生产环境限制特定 IP 段而非全网开放结合阿里云云盾服务提升整体安全性降低被攻击风险。firewall-cmd --add-port8080/tcp--permanentfirewall-cmd--reload步骤 8第八步运行容器并映射端口使用 docker run 命令启动容器。命令为 docker run -d -p 8080:8080 --name webapp my-webapp:latest。-d 表示后台运行-p 映射宿主机 8080 端口到容器 8080 端口–name 指定容器名称。启动后使用 curl http://ECS_IP:8080 测试服务是否响应。若无法访问检查安全组规则与容器端口映射是否一致。容器日志可通过 docker logs webapp 查看排查启动错误。此时应用已可通过公网 IP 访问实现了本地开发环境到云服务器的迁移。dockerrun-d-p8080:8080--namewebapp my-webapp:latestcurlhttp://ECS_IP:8080步骤 9第九步配置持久化存储与数据卷容器重启后数据可能丢失需挂载数据卷。使用 -v 参数将宿主机目录挂载到容器如 -v /app/data:/app/data。在 docker-compose.yml 中定义 volumes 部分指定卷名。对于数据库等状态服务建议挂载到阿里云云盘而非本地磁盘以支持数据备份与迁移。配置云盘挂载命令 mount /dev/vdb /data并设置自动挂载。数据持久化是生产环境的核心要求确保业务数据不随容器销毁而丢失同时利用云盘的高 IOPS 性能保障读写效率。dockerrun-d-v/app/data:/app/data--namewebapp my-webapp:latest步骤 10第十步监控日志与资源清理部署完成后建立监控机制。使用 docker stats 查看容器 CPU 与内存占用设置阈值告警。定期清理无用镜像与容器命令 docker system prune -a 释放空间避免磁盘爆满影响服务。查看日志文件 docker logs --tail 100 webapp 定位问题。结合阿里云云监控服务配置 CPU 使用率超过 80% 时报警。最后测试容器重启行为确保服务具备自愈能力。良好的运维习惯能延长 ECS 生命周期保障业务连续性降低故障恢复时间。dockerstatsdockersystem prune-adockerlogs--tail100webapp费用总结部署成本主要取决于 ECS 实例规格与运行时长。按量付费每小时约¥0.5-1.0包年包月更优惠首年折扣可达 5 折。建议购买 3 个月以上实例享受折扣或使用抢占式实例降低成本价格可低至按量付费的 10%。避免长期闲置及时释放未用资源。利用阿里云镜像加速服务可减少拉取时间降低网络成本。定期清理无用镜像节省存储空间。若业务量波动大可结合弹性伸缩组Auto Scaling动态调整实例数量实现成本与性能的最佳平衡。整体单次部署成本可控制在¥30 以内。相关链接云服务器 ECS 官方文档阿里云帮助中心常见问题这个教程适合新手吗本教程面向中级级别读者按步骤操作即可完成无需深厚的云上经验遇到报错可对照上一步检查配置。完成教程后如何进一步优化上线后可结合弹性伸缩、监控告警与规格升配进一步优化云服务器 ECS的性价比与稳定性。遇到报错怎么办如遇操作问题优先查阅阿里云云服务器 ECS官方文档或提交工单获取技术支持。相关推荐前往阿里云官网了解 云服务器 ECS 的最新规格与价格教程中涉及的产品价格以阿里云官网实时价格为准。