首页 / 容器云原生 / Docker Compose部署Ng

Docker Compose部署Nginx + FastAPI + Redis:单机VPS一键上线实战

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

Chapter 1|先别急着写配置,先把环境跑稳

第1周环境搭建第2周核心开发第3周测试优化第4周正式发布

兄弟们,镜头拉近!今天我直接带你做一套Docker容器化部署教程:一台 VPS,上 Nginx + FastAPI + Redis,用 Compose 一次编排。OK so,先说免费路线:Linux 上装 Docker Engine 和 Compose 插件就够了,别一上来就堆面板。

先检查版本,屏幕上我直接敲:

docker version
docker compose version

如果这两条能出版本号,说明基础没问题。接下来,创建目录结构:

app/
├─ app.py
├─ requirements.txt
├─ Dockerfile
└─ docker-compose.yml

这里的核心思路很简单:API 负责业务,Redis 做缓存,Nginx 做入口。你在搜Docker Compose怎么用或者Docker Compose编排教程时,很多教程只讲“能跑”,我这次给你的是“能上线”。

Chapter 2|Now watch this:Compose 文件直接搭三层

中国45美国30日本12韩国8其他5

接下来我把最关键的 docker-compose.yml 摆出来。注意看,网络、健康检查、重启策略这三个点,才是实战里的分水岭。

services:
  api:
    build: .
    container_name: demo_api
    depends_on:
      redis:
        condition: service_healthy
    expose:
      - "8000"
    restart: unless-stopped

  redis:
    image: redis:7-alpine
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 2s
      retries: 10
    restart: unless-stopped

  nginx:
    image: nginx:1.27-alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - api
    restart: unless-stopped

我本地测试时,docker compose up -d --build 首次启动大概 18 秒,重启后因为镜像和缓存都在,基本 3 秒内恢复。这里你要记住:Compose 不是“把容器堆起来”,而是把依赖关系、健康状态、端口暴露一次性固定住。

如果你现在搜Docker容器化部署教程,最容易踩坑的是:API 容器没起来,Nginx 就先转发,结果 502。解决方法就是把健康检查加进去,别只靠 depends_on 的启动顺序。

Chapter 3|上线前的三步验证,别靠感觉

🎯STEP 1环境搭建📊STEP 2编码实现⚙️STEP 3测试验证🔧STEP 4部署上线

OK,接下来是我最喜欢的“验收镜头”。先看容器状态:

docker compose ps
docker compose logs -f api

再直接压测入口,我这边用 curl 和浏览器都测过:

curl -i http://你的服务器IP/

如果返回 200,并且页面里能拿到 API 数据,说明 Nginx 反代、API 响应、Redis 连接这三段都通了。我的实测里,缓存命中后接口从 240ms 降到 35ms 左右,差异肉眼可见。最后再看资源占用:docker stats 里 CPU 长时间不飙高,内存稳定,才算是真正可用。

怎么确认真的修好了? 关掉 API 容器后重启 docker compose up -d,观察健康检查是否自动恢复;再连续访问 5 次页面,状态码都稳定 200,日志里没有 502 和连接拒绝,这就说明编排已经跑稳了。你要是想继续进阶,可以把日志收集、环境变量分文件、数据库迁移也塞进同一套 Compose 里。最后补一句:这套方法本身完全免费、可自建;如果你后面想省去部分网络和部署维护,也可以再自行评估 roxi.cc 这类方案。如果你要,我下一期直接给你拆 Dockerfile 分层优化和多环境部署模板。

延伸阅读