你是不是也经常在网上看到别人用“高大上”的技术部署项目,比如 Docker、容器化、微服务?心里想着:“这玩意儿肯定很难吧?”其实啊,真没你想的那么复杂。今天我就带你从零开始,用阿里云的 ECS 云服务器,把一个基于 Docker Compose 的项目完整地跑起来。整个过程就像搭积木一样简单,哪怕你是第一次接触 Linux 或者 Docker,也不用担心,跟着我一步步来,保证你能搞定!

为啥要用 ECS + Docker Compose?
先说说背景。现在很多项目都不是单个程序那么简单了,比如你可能有个前端页面、一个后端 API、再加个数据库(MySQL 或 Redis),这三个东西得一起跑,还得互相通信。以前的做法是全都装在一台服务器上,配置各种环境,一旦出问题,排查起来头都大了。
而 Docker 就是为了解决这个问题诞生的——它可以把每个服务打包成一个“集装箱”(也就是容器),互不干扰。Docker Compose 更牛,能让你写个 YAML 文件,一键启动多个容器,自动组网、挂载数据、设置环境变量,省心到飞起。
再加上阿里云 ECS,稳定又便宜,按小时计费,用完还能随时关机,特别适合我们这种想练手或者跑个小项目的开发者。ECS + Docker Compose 的组合,简直就是个人开发者的黄金搭档!
第一步:买台 ECS,别怕贵,新用户有惊喜!
打开阿里云官网,登录你的账号。如果你是新用户,恭喜你,福利多多!直接去购买一台 ECS 实例就行。配置不用太高,我建议选个入门款:比如 2核4G、系统盘 40GB、带宽 1M 就够用了,一个月也就几十块钱,学生党也能接受。
这里悄悄告诉你一个小技巧:买之前一定要领张阿里云优惠券!新用户领券之后,首年价格能省下一大截,有的甚至低至 1 折。像我上次买的时候,原价 300 多的服务器,用了券只要 89 块,简直不要太香。赶紧点击链接去领,错过可就亏大了!
操作系统我推荐选 Ubuntu 20.04 或 22.04,社区支持好,教程多,遇到问题也好搜答案。镜像类型选“公共镜像”就行,安全组记得放行 SSH(22端口)、HTTP(80端口)和你项目要用的其他端口,比如 3000、5000 之类的。
第二步:连接服务器,开启命令行之旅
买完 ECS 后,你会拿到一个公网 IP 地址。接下来就是用终端工具连接它。Windows 用户可以用 Xshell 或者免费的 PuTTY,Mac 和 Linux 用户直接用自带的 Terminal 就行。
输入命令:
ssh root@你的公网IP
然后输入你设置的密码,如果弹出警告问是否继续连接,输入 yes 就行。成功之后,你就进入了远程服务器的“世界”,接下来所有的操作都在这里完成。
第三步:安装 Docker 和 Docker Compose
连接成功后,第一件事就是更新系统软件包:
sudo apt update && sudo apt upgrade -y
接着安装 Docker。官方推荐用脚本安装,简单又不容易出错:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
装完之后,运行下面这行命令,让普通用户也能执行 Docker 命令(不用每次敲 sudo):
sudo usermod -aG docker $USER
这时候你需要退出终端,重新登录一次,才能生效。
接下来装 Docker Compose。虽然现在新版 Docker 已经内置了 compose 插件,但为了保险起见,我们手动装一下最新版:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
最后验证一下有没有装成功:
docker --version
docker-compose --version
如果都能正常显示版本号,那就说明 Docker 环境已经准备好了,可以进入正题了!
第四步:准备你的项目文件
假设我们要部署一个简单的博客项目,包含三个部分:Nginx(反向代理)、Node.js 后端、MySQL 数据库。我们在服务器上新建一个项目目录:
mkdir ~/myblog && cd ~/myblog
然后创建一个 docker-compose.yml 文件:
nano docker-compose.yml
把下面的内容复制进去:
version: '3.8'
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: mysecretpassword
MYSQL_DATABASE: blogdb
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
restart: unless-stopped
backend:
image: node:16
working_dir: /app
volumes:
- ./backend:/app
command: sh -c "npm install && npm start"
ports:
- "3000:3000"
depends_on:
- db
restart: unless-stopped
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
depends_on:
- backend
restart: unless-stopped
volumes:
db_data:
这个配置文件的意思是:启动三个服务,数据库用 MySQL,后端用 Node.js 跑在 3000 端口,Nginx 监听 80 端口做代理。注意,我们还需要在本地准备好 backend 和 nginx 这两个文件夹,里面放对应的代码和配置。
第五步:上传代码,启动服务
你可以用 SCP 命令把本地的代码传到服务器:
scp -r backend root@你的IP:~/myblog/
scp -r nginx root@你的IP:~/myblog/
确保文件都传上去了之后,回到服务器终端,进入项目目录:
cd ~/myblog
然后一键启动所有服务:
docker-compose up -d
这个 -d 参数意思是“后台运行”,不加的话你会看到满屏日志滚动,加了就安静多了。
等几秒钟,服务就启动完成了。你可以用下面这个命令查看运行状态:
docker-compose ps
如果看到三个服务都是 “Up” 状态,那就说明一切正常!这时候你打开浏览器,输入你的 ECS 公网 IP,应该就能看到你的网站首页了!
第六步:日常维护小技巧
项目跑起来了,不代表就万事大吉了。你还得学会怎么维护它。
比如想看某个服务的日志,可以用:
docker-compose logs backend
想重启某个服务:
docker-compose restart backend
修改了代码想重新部署?先把旧的删了:
docker-compose down
然后再传新代码,重新 up -d 就行。
记得定期备份数据库。你可以进 MySQL 容器执行导出命令:
docker-compose exec db mysqldump -u root -p blogdb > backup.sql
这样就把数据导出来存到服务器上了,安全又放心。
你也可以成为“运维小能手”
看到这里,你是不是发现,部署一个项目也没那么神秘?无非就是买台服务器、连上去、装环境、写配置、启动服务这几个步骤。Docker Compose 真的是大大降低了部署门槛,让你能把更多精力放在写代码上,而不是折腾环境。
而且阿里云 ECS 配合 Docker,稳定性强、扩展性好,以后你想加 Redis、MongoDB、Kafka,统统都可以写进 docker-compose.yml 里,一键拉起。
最重要的是,整个过程你完全掌控,不像某些平台把你“锁住”,想迁移都难。自己动手,丰衣足食,这才是程序员的浪漫!
最后再提醒一次:如果你还没买 ECS,或者打算换配置,一定要去领阿里云优惠券!能省则省,省下来的钱买杯奶茶不香吗?
好了,今天的实战教程就到这里。希望你看完能动手试一试,哪怕只是跑个 Hello World,也是一种进步。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/149021.html