Ryanan

容器化部署实践:一台服务器装下所有服务

用 Docker Compose 在一台轻量服务器上编排博客、网盘与监控,端口只 expose 不映射,全部流量交给反向代理。

评论
容器化部署实践:一台服务器装下所有服务

为什么选择容器化

把所有个人服务塞进一台机器,最怕的就是「装了这个坏了那个」。容器化带来的隔离性与可复现性,让每个服务都活在自己的小世界里,互不干扰。

一次构建,处处运行。这不是口号,而是运维生活的止痛药。

docker compose 编排

用一个 docker-compose.yml 描述整个服务栈,包括博客、网盘、监控与反向代理。核心原则只有一条:服务端口只 expose,不映射到宿主机,全部流量统一从反向代理入口进入。

services:
  halo:
    image: halohub/halo:2.26
    expose:
      - "8090"
  npm:
    image: jc21/nginx-proxy-manager
    ports:
      - "80:80"
      - "443:443"
      - "81:81"

反向代理与证书

Nginx Proxy Manager 用图形界面管理反代规则,Let's Encrypt 证书自动续签,配合子域名分发到不同服务,是最省心的组合。

  • blog → Halo 博客
  • www → 个人首页
  • pan → Alist 网盘
  • status → Uptime Kuma 监控

几点经验

  1. 数据卷要单独备份,镜像升级前先打快照;
  2. 数据库不要暴露端口,能少一个入口就少一个风险;
  3. 监控先行,服务挂了要第一时间知道。

容器化不是银弹,但它确实把「折腾」变成了「配置」。

评论

推荐阅读

订阅邮件

订阅更新,及时收到最新文章。

作者