Docker Compose实战:用一台VPS部署个人全栈云服务

还在为VPS到手后不知道装什么而发愁?本文手把手教你使用Docker Compose在一台VPS上部署WordPress博客、Nextcloud云盘、Uptime Kuma监控和Nginx反向代理,零成本打造个人私有云生态,配置模板直接复制使用。

你还在手动编译Nginx、装PHP、配MySQL,折腾半天才发现依赖冲突?90%的个人站长拿着一台VPS,却把时间浪费在环境配置上,结果换个服务器就得从头再来。实测数据显示,用Docker Compose书写一个YAML文件、一行命令就能启动WordPress+Nextcloud+Redis+MongoDB+Uptime Kuma全套服务,环境完全隔离、可复现、可迁移。

为什么选择Docker Compose管理云服务?

对于拥有一台VPS但又不想把大量时间花在运维上的站长来说,Docker Compose堪称神器。传统的服务部署方式需要在服务器上逐一手动安装环境——先编译Nginx、再装PHP、然后配置MySQL,每一个环节都可能因为操作系统版本差异、依赖冲突、配置文件错误而耗费数小时。而Docker Compose的出现彻底改变了这一局面:你只需编写一个YAML格式的配置文件,把所有服务的镜像、端口映射、环境变量、数据卷和网络关联定义清楚,一行命令就能启动整个服务栈,而且环境完全隔离、可复现、可迁移。

具体来说,Docker Compose为个人站长带来了以下几个核心优势。首先是可重复部署——你在本地测试好的配置,上传到任何一台VPS上都能完美运行,不会出现”我这台机器编译不过”的尴尬。其次是环境隔离——每个服务运行在自己的容器中,WordPress依赖的PHP版本不会和Nextcloud需要的PHP版本打架。最后是一键启停——一条docker compose up -d启动所有服务,一条docker compose down干净地停止并清理资源,无需逐一管理进程。

准备工作:选购一台合适的VPS

在开始部署之前,首先要选择一台配置足够的VPS。根据我们即将部署的服务组合(Nginx反向代理 + WordPress博客 + MySQL数据库 + Uptime Kuma监控 + Nextcloud云盘 + Redis缓存),建议至少选择2GB内存、2核CPU、40GB SSD存储的配置。如果预算允许,DigitalOcean的4GB内存方案或者RackNerd的年付促销机都能很好地胜任这个负载,价格也相当亲民。

对于追求极致性价比的用户,CloudCone和HostDare的洛杉矶机房VPS也是不错的选择,年付方案低至十几美元。操作系统建议选择Ubuntu 22.04 LTS或Debian 12,这两个发行版的Docker支持最为成熟,社区资源也最丰富。购买VPS后,记下IP地址和root密码,接下来我们将通过SSH连入服务器进行配置。

Docker Compose服务架构图

第一步:VPS基础环境配置

拿到VPS后的第一件事不是急着装面板,而是做好基础安全加固和环境准备。首先通过SSH登录到你的服务器(推荐使用SSH密钥认证而非密码登录),然后执行系统更新。Ubuntu/Debian系统执行 apt update && apt upgrade -y 即可将所有软件包更新到最新版本。

接下来安装Docker。Docker官方提供了一键安装脚本,执行 curl -fsSL https://get.docker.com | bash 就会自动完成Docker Engine和containerd的安装。安装完成后,执行 docker --version 确认安装成功。Docker Compose v2已经以Docker插件的形式内置在Docker中,通过 docker compose version 即可验证。如果你的系统没有自带Compose插件,也可以通过 apt install docker-compose-plugin 单独安装。

最后配置防火墙。Ubuntu默认使用UFW,执行以下命令放行必要端口:ufw allow 22/tcp(SSH)、ufw allow 80/tcp(HTTP)、ufw allow 443/tcp(HTTPS),然后 ufw enable 启用防火墙。如果你用云服务商的控制面板自带的防火墙规则,也请确保放行了这3个端口。

第二步:Nginx Proxy Manager反向代理

在正式部署业务服务之前,我们首先架设一个统一的入口网关——Nginx Proxy Manager。这是一个基于Nginx的Web管理面板,提供了图形化的反向代理配置和Let’s Encrypt自动SSL证书申请功能,让你无需手动编辑Nginx配置文件就能管理所有域名和HTTPS证书。

创建一个项目目录并在其中编写 docker-compose.yml:

version: "3.8"
services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

执行 docker compose up -d 启动服务后,浏览器访问 http://你的IP:81,使用默认账号 [email protected] / changeme 登录,然后立即修改密码。在面板中添加你的域名并申请SSL证书,此后所有流量都将自动通过HTTPS加密传输。

第三步:部署WordPress博客站点

WordPress是全球使用最广泛的CMS系统,占据全球超过40%的网站份额。通过Docker Compose部署WordPress可以让环境完全容器化,不再担心PHP版本升级或MySQL迁移带来的兼容性问题。我们将使用官方的 wordpress:latest 镜像加上 mysql:8.0 数据库,配合Redis缓存加速。

在docker-compose.yml中添加以下服务定义:

  wordpress:
    image: wordpress:latest
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: 你的密码
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: 你的密码
      MYSQL_ROOT_PASSWORD: root密码
    volumes:
      - ./db_data:/var/lib/mysql

  redis:
    image: redis:alpine
    restart: always

启动后回到Nginx Proxy Manager面板,为你的域名创建一个反向代理指向 wordpress:80。访问域名即可进入WordPress安装页面,填入站点信息即可完成博客搭建。安装了Redis Object Cache插件后,页面加载速度可以提升3-5倍。

第四步:Uptime Kuma网站监控

运营网站最怕的是什么?不是流量少,而是网站宕机了自己还不知道。Uptime Kuma是一款开源的网站状态监控工具,提供美观的仪表盘,支持HTTP、Ping、TCP、DNS等多种监控方式,并可以通过Telegram、邮件、Slack等多个渠道发送告警通知。更贴心的是,它内置了状态页面功能,可以生成一个公开的status.yourdomain.com页面展示所有服务的运行状况。

在docker-compose.yml中添加:

  uptime-kuma:
    image: louislam/uptime-kuma:latest
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./uptime-kuma:/app/data

启动后访问 http://你的IP:3001 设置管理员账号,然后添加你的WordPress域名、Nextcloud域名和NPM管理面板作为监控目标。建议将监控间隔设为60秒,告警触发阈值设为连续3次失败,这样既能及时发现问题,又不会因为偶发网络抖动而收到大量误报。配置Telegram Bot推送告警后,你可以第一时间在手机上收到网站故障通知。

第五步:Nextcloud私人云盘

Nextcloud是功能最完善的自托管云盘方案,支持文件同步与分享、日历、联系人、端到端加密、Office在线编辑等丰富功能。把它部署在你的VPS上,就可以彻底告别百度网盘的限速和隐私顾虑。Nextcloud对数据库的要求较高,我们选择PostgreSQL而非SQLite来获得更好的并发性能。

在docker-compose.yml中追加:

  nextcloud:
    image: nextcloud:stable
    restart: always
    ports:
      - "8081:80"
    environment:
      POSTGRES_HOST: db-nc
      POSTGRES_DB: nextcloud
      POSTGRES_USER: ncuser
      POSTGRES_PASSWORD: 你的密码
    volumes:
      - ./nc_data:/var/www/html

  db-nc:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_DB: nextcloud
      POSTGRES_USER: ncuser
      POSTGRES_PASSWORD: 你的密码
    volumes:
      - ./pg_data:/var/lib/postgresql/data

启动后在NPM面板中为Nextcloud添加反向代理,指向 nextcloud:80。首次访问需要创建管理员账号并配置PostgreSQL数据库连接。Nextcloud的客户端支持Windows、macOS、Linux、Android和iOS全平台覆盖,安装客户端后设置服务器地址,即可实现类似Dropbox的无缝同步体验。

Docker Compose一键部署流程

第六步:安全加固要点

容器化部署虽然已经比传统方式更安全,但仍然有几个关键点需要特别注意。首先是非root用户运行——在Dockerfile中通过 USER 指令指定非root用户,或者在docker-compose.yml中设置 user: 参数,可以防止容器被攻破后攻击者获得宿主机root权限。其次是定期更新镜像——建议每周执行一次 docker compose pull 拉取最新镜像,然后 docker compose up -d 重启服务,及时修复已知漏洞。

数据备份是重中之重。所有容器的重要数据都应该通过 volumes 挂载到宿主机指定目录,然后使用crontab定时执行备份脚本。对于WordPress的wp-content和Nextcloud的文件目录,建议设置每日增量备份,数据库则通过 mysqldump 或 pg_dump 导出SQL文件后压缩保存。备份可以存储在VPS的另一块磁盘上,或者使用rclone同步到Google Drive或OneDrive实现异地容灾。

一张表看明白:各服务端口与配置速查

服务容器端口对外端口数据卷目录
Nginx Proxy Manager80/443/8180/443/81./data, ./letsencrypt
WordPress80通过NPM代理./wp-content
MySQL3306内部-only./db_data
Uptime Kuma30013001./uptime-kuma
Nextcloud808081*./nc_data, ./pg_data
Redis6379内部-only—

*Nextcloud的8081端口仅用于直接访问测试,正式使用应通过NPM反向代理配置为子域名访问。

总结:用Docker Compose构建你的私有云生态

通过以上六个步骤,我们在一台普通的VPS上成功部署了博客系统、网站监控、私人云盘和缓存加速四大核心服务,所有服务共享同一个反向代理入口,统一管理SSL证书,并且通过容器隔离确保各服务互不干扰。整个过程没有使用任何付费面板或商业订阅,所有组件都是免费开源的。

这套方案的总成本仅为一台VPS的年费——如果选择高性价比的RackNerd或CloudCone年付方案,每年的服务器开销不到200元人民币,却可以拥有完全自主可控的私有云服务。后续你还可以在这个架构上继续扩展——添加MinIO对象存储、安装ntfy推送服务、部署FreshRSS订阅阅读器,甚至跑一个AI推理服务。Docker Compose的扩展性远超你的想象,一台VPS就是一个数据中心。

原创文章,作者:kp51,如若转载,请注明出处:https://www.kepu51.com/instant-messaging/823.html

赞 (0)
上一篇 2026年6月14日 01:13
下一篇 2026年6月18日 01:23

相关推荐

  • HmbCloud 半月灣 VPS 深度评测:三网 CN2 GIA、多机房与建站实战,值得入手吗?

    1. 引言 当你在寻找既能提供稳定 CN2 GIA 优化线路,又能在有限预算内获得可靠支撑的 VPS 时,小众但专业的商家往往能给你意想不到的惊喜。HmbCloud 半月灣(Half Moon Bay Cloud)正是这样一个选手——它以三网 CN2 GIA 直连、多机房覆盖和亲民定价在国内用户中积累了稳定的口碑。相比搬瓦工的高端定位和 DMIT 的企业级价…

    2026年2月12日
  • Oracle Cloud Always Free 2026 还能用吗?ARM 免费配额变化、扣费风险与替代 VPS 选择

    Oracle Cloud Always Free 2026 还能用吗?ARM 免费配额变化、扣费风险与替代 VPS 选择 如果你正在寻找一台免费的云服务器用来学习、跑小型项目或部署个人服务,Oracle Cloud 的 Always Free 层曾经是无可争议的首选。但进入 2026 年,不少用户发现 ARM 实例的免费配额似乎悄悄缩水,账号风控更加严格,偶…

    2026年7月3日
  • IEPL 与 IPLC 专线:技术特性与场景应用深度解析

    引言 在全球化企业网络架构中,国际专线已成为跨国数据传输的核心基础设施。IEPL(International Ethernet Private Line)与IPLC(International Private Leased Circuit)作为两类主流专线技术,常因概念混淆导致企业选型困难。本文将从技术原理、性能指标、应用场景等多个维度进行系统性对比,为企业…

    2025年12月1日
  • DedicatedCore VPS 值不值得入手:外贸建站、机房网络和性价比评测

    DedicatedCore VPS 值不值得入手:外贸建站、机房网络和性价比评测 做外贸独立站的朋友,对服务器最头疼的问题无非两个:一是国内访问慢,客户打开页面要等好几秒;二是国外机房的线路乱七八糟,价格看着便宜,实际用起来丢包率高得离谱。最近后台一直有人问 DedicatedCore 这个品牌,说看到它们家的 VPS 价格低得吓人,配置看起来也还行,就是不…

    2026年7月11日
  • AI 编程工具推荐 2026:代码生成、审查、自动化及VPS部署实战

      AI 编程工具推荐 2026:代码生成、审查、自动化及VPS部署实战 AI 编程工具已经从简单的代码补全进化到能够独立完成复杂任务。对于站长、开发者甚至运维人员来说,合理使用 AI 可以大幅提升工作效率:快速写脚本、排查问题、配置服务器、生成 Docker Compose 文件等。但市面上的工具琳琅满目——Cursor、Claude Code、…

    2026年7月1日
  • 适合 VPS 自托管的开源工具推荐:AI、自动化、部署面板、监控与个人云(2026年版)

    适合 VPS 自托管的开源工具推荐(2026年版) 拥有一台 VPS 后,除了搭建网站和代理之外,你还可以把它变成全栈个人云:部署 AI 模型聚合网关、自动化工作流、代码仓库、监控面板、文件管理甚至个人知识库。2026 年的开源生态空前繁荣,大量高质量的自托管项目可以运行在低至 1C1G 的 VPS 上。本文按使用场景分类,为你梳理最值得部署的开源工具,并给…

    2026年7月10日
  • 白嫖 DigitalPlat 永久免费域名完整指南:支持托管到 Cloudflare(2026最新版)

    DigitalPlat(前身 us.kg)提供永久免费域名,支持 dpdns.org、qzz.io 等后缀,可托管到 Cloudflare。本文从注册到配置完整指南。

    2026年6月8日
  • VPS 明明配置不低却卡顿?从 CPU、磁盘 I/O 到线路拥塞的排查清单

    VPS 明明配置不低却卡顿?从 CPU、磁盘 I/O 到线路拥塞的排查清单 你是否有过这样的经历:VPS 的 CPU 核心数、内存大小看着都不差,甚至和隔壁博主的上古配置差不多,可网站打开就是慢,SSH 连接也经常卡住。不要急着怀疑“是不是被超兽了”——很多时候,卡顿的根源并不是配置不够,而是某个环节出了隐秘问题。这篇文章会带你按顺序排查 CPU 负载、磁盘…

    2026年7月8日
  • 一个手机号注册多个微信小号教程

    本文详细介绍了如何用一个手机号注册多个微信账号的步骤和注意事项,帮助用户分开管理个人和工作社交圈。微信现已开放同一手机号注册多个小号的功能,但需注意账号管理和切换时的细节问题。 微信允许同一手机号注册最多2个账号,需通过“切换账号”功能管理。 注册步骤包括手机号辅助验证、设置个人信息及微信号,需多次尝试可能遇到的系统繁忙提示。 小号无法直接用手机号登录,建议…

    2025年6月10日 • Linux运维
  • 狗云香港大硬盘 VPS 怎么选:容量、带宽、备份和自托管场景分析

    狗云香港大硬盘 VPS 怎么选:容量、带宽、备份和自托管场景分析 当你在香港 VPS 上搭建自托管服务时,常见的 NVMe 硬盘往往只有 20-40GB 可用空间,装完系统和 Docker 就所剩无几。照片备份、监控存档、个人网盘这些“吃容量”的需求,很快就把小硬盘塞满。狗云(DogYun)近期推出的香港大硬盘 VPS 系列,将起步容量提升到 250GB,最…

    2026年7月9日