导语:本地做成了只是第一步——让它 7×24 小时在服务器上跑,才是"上线"。这一篇把待办应用部署到云服务器,每一步 AI 帮你生成命令,你负责理解每条在做什么。
23、24 篇,你的待办应用在本地跑通了:有数据库、有接口、有页面。但本地跑的网站,只有你电脑开着才有人能访问。部署 = 把应用搬到服务器上,让它永远在线。
部署的整体思路就四步:装 Docker → 传代码 → 打包启动 → 用域名访问。 每一步都用你前 24 篇学过的东西。
一、整体思路:四步上线
| 步骤 | 做什么 | 用到的旧知识 |
|---|---|---|
| ① 装 Docker | 服务器上装好 Docker | 14(Linux)、18(Docker) |
| ② 传代码 | 把项目搬到服务器 | 11(SSH 工具)、20(Git) |
| ③ 打包启动 | Dockerfile + docker-compose 跑起来 | 18(Docker) |
| ④ 域名访问 | 绑定域名,让它有"门面" | 17(Nginx)、19(DNS)、09(SSL) |
经验:先想清楚四步,再动手——部署不是玄学,就是这四件事按顺序做。
二、第一步:服务器准备
- SSH 连上服务器(11 篇):用你的 SSH 工具登录。
- 装 Docker:让 AI 给你一条命令(或按 18 篇小任务的官方教程),装完验证:
docker --version # 有版本号 = 装好了
经验:装 Docker 这步卡住,多半是权限(要 sudo)或源(国内服务器用镜像源更快)——把报错贴给 AI,它知道怎么处理。
三、第二步:把代码传到服务器
两个办法,任选:
办法一:scp 直接传(小项目最快)
scp -r 本地项目目录 root@你的IP:/root/
-r 表示传整个目录(14 篇学过 scp)。
办法二:Git clone(更规范,20 篇)
git push origin main # 本地推到云端仓库
# 服务器上:
git clone 你的仓库地址
经验:二选一即可,新手先用 scp——不用配远程仓库,一条命令搬过去。等以后项目多了,再用 Git 方式(顺便有版本管理)。
四、第三步:Docker 打包启动
到了服务器上,用 18 篇学的东西:Dockerfile(打包说明书)+ docker-compose(全家桶清单)。
让 AI 基于你的项目生成(上下文给全):
"我的待办应用是 Flask + SQLite,项目在服务器的 /root/todo-app。帮我写 Dockerfile 和 docker-compose.yml:应用映射 5000 端口,SQLite 数据要挂载到宿主机目录(不能存容器里,容器删了数据不能没)。写完后告诉我怎么构建和启动。"
启动命令(18 篇的速查):
docker compose up -d --build # 构建并后台启动
docker ps # 看容器在不在运行
验证:浏览器访问 http://你的服务器IP:5000——看到待办应用页面,部署成功!
经验:SQLite 数据必须挂载到宿主机(数据卷 volume)——这是 18 篇最强调的坑:容器删了,数据不能跟着没。让 AI 在 compose 里配好 volume,别偷懒。
五、第四步:用域名访问(让它有门面)
现在网站用 IP:5000 能访问,但"有门面"要两步:
- Nginx 反向代理(17 篇):让
http://你的域名转发到127.0.0.1:5000——用户不用记端口号。 - 绑定域名 + HTTPS(19 + 09 篇):DNS 把域名解析到服务器 IP(19 篇 A 记录),再申请免费 SSL 证书挂上(09 篇 Let's Encrypt)。
让 AI 帮你生成 Nginx 配置,但你要看懂三行(17 篇):
server {
listen 80; # 站 80 端口
server_name 你的域名.com; # 接待这个域名
location / { proxy_pass http://127.0.0.1:5000; } # 转发给应用
}
改完配置别忘了 17 篇的标准动作:nginx -t 测试 → systemctl reload nginx(或 nginx -s reload)生效。
经验:先 IP:端口通,再域名通,最后 HTTPS——一步步来,每步验证过再进下一步(19 篇:排查按链路)。
六、避坑清单
- 端口映射别冲突:
-p 5000:5000报端口占用,换宿主端口(如5001:5000)即可。 - 数据卷必须配:SQLite 数据挂宿主机目录,容器删了数据还在(18 篇)。
- 安全组放行:服务器安全组/防火墙要放行 5000 和 80/443(10 篇)——不然容器起来了,外面也访问不到。
- 改代码要重新 build:代码改完
docker compose up -d --build,不是只 restart(18 篇)。 - 启动失败看日志:
docker logs 容器名——部署排查第一现场(14 篇"看日志"就是干这个的)。 - 别用 root 跑服务:能用普通用户 + sudo 就用,安全底线(10 篇)。
总结
- 部署四步:装 Docker → 传代码(scp 或 Git)→ Docker 打包启动 → 域名访问。
- 传代码:新手用
scp -r,规范用 Git。 - Docker 启动:
docker compose up -d --build+docker ps验证;SQLite 数据挂卷,容器删了不能没。 - 域名访问:Nginx 反代(17 篇三行配置)+ DNS 解析(19 篇)+ 免费 HTTPS(09 篇)。
- 避坑六条:端口冲突换映射、数据挂卷、安全组放行、改代码重新 build、失败看 docker logs、别用 root 跑。
10 分钟小任务:SSH 连上服务器,完成前三步(装 Docker、传代码、Docker 启动),用 http://你的IP:5000 访问到待办应用页面——你的应用第一次"在线"了! 下一篇给它配上域名和 HTTPS,正式上线,并发起第一个里程碑活动。
下一篇:加 Nginx + 域名 + HTTPS:让你的项目有门面。
