引言
当你的 Docker 服务器上跑着十几个容器,每天要检查它们是不是还活着、日志有没有异常、镜像要不要更新……手动管理已经变成一场噩梦。这时候,你就需要一套自托管运维工具箱。今天介绍三款开源工具,覆盖容器运维的三大核心场景。
三件套概览
| 工具 | 功能 | 端口 | GitHub Stars | 一句话 | |------|------|------|-------------|--------| | Uptime Kuma | 服务监控 + 宕机告警 | 3001 | 58k+ | 比 Pingdom 更香的自托管监控 | | Portainer | Docker 图形化管理 | 9000 | 32k+ | 告别命令行管理容器 | | Watchtower | 自动更新容器镜像 | 无 | 19k+ | 让你的容器永远保持最新 |
一、Uptime Kuma — 服务状态面板
Uptime Kuma 是一个自托管的监控工具,监控你的所有服务是否在线。支持 HTTP、TCP、Ping、DNS、Docker 等多种监控方式,还支持多种通知渠道(邮件、Telegram、钉钉、企业微信等)。
部署
docker run -d \
--name uptime-kuma \
-p 3001:3001 \
-v uptime-kuma-data:/app/data \
--restart unless-stopped \
louislam/uptime-kuma:latest
部署完成后,浏览器访问 `http://你的IP:3001`,注册账号后即可添加监控项。
核心功能亮点
- 80 秒间隔默认探测间隔,覆盖绝大多数场景 - 状态页公开分享:可以生成一个公开的状态页 - SSL 证书监控:监控域名证书的到期时间 - 支持代理监控:通过代理检查内网服务 - Ping 延迟折线图:长期观测网络质量
二、Portainer — Docker 可视化管家
Portainer 是目前最流行的 Docker 管理面板。它把 `docker ps`、`docker logs`、`docker exec` 这些命令变成了鼠标点击操作。
部署
docker run -d \
--name portainer \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer-data:/data \
--restart unless-stopped \
portainer/portainer-ce:latest
常用功能
- 容器管理:启停、删除、查看日志、进入终端 - 镜像管理:拉取、删除、构建 - 网络管理:创建、连接、查看网络拓扑 - 卷管理:创建和管理数据卷 - 应用模板:一键部署常用服务
如果你是 Docker 新手,Portainer 可以帮助你快速上手容器管理的各个概念。就算你是老手,有了 Portainer 也能减少大量重复的 `docker` 命令输入。
三、Watchtower — 自动更新守护
容器部署久了最大的痛点是什么?容器内的软件版本过时了。你部署的 Nginx、MySQL、Redis,如果长时间不更新,可能带着安全漏洞在跑。Watchtower 就是来解决这个问题的。
部署
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKER_API_VERSION=1.44 \
--restart unless-stopped \
containrrr/watchtower:latest \
--schedule "0 0 4 * * *" \
--cleanup
⚠️ 注意事项:如果你的 Docker 版本较新(API 版本 ≥ 1.44),需要在环境变量中设置 `DOCKER_API_VERSION=1.44`,否则 Watchtower 会因客户端版本过旧而不断重启。
各参数说明: - `--schedule "0 0 4 * * *"`:每天凌晨 4 点检查更新(Cron 表达式) - `--cleanup`:更新后自动删除旧镜像,节省磁盘空间 - `--include-stopped`:也更新已停止的容器(可选) - `--revive-stopped`:更新后重新启动已停止的容器(可选)
四、三件套联动
这三件工具各司其职,又能协同工作:
Uptime Kuma ← 监控 → Portainer 和 Watchtower 是否正常
Portainer ← 管理 → 所有容器的运行状态
Watchtower ← 更新 → 所有容器的镜像版本
加上 Nginx Proxy Manager 做反向代理,就能构建一个完整的自托管服务体系:
NPM(443) → Uptime Kuma(3001) → 监控全部服务
→ Portainer(9000) → 管理全部容器
→ Watchtower → 自动更新全部镜像
五、总结
如果你只有一两台服务器、跑着三五个容器,或许手动管理就够了。但当容器数量超过十个,部署这三件套能为你节省大量时间。Uptime Kuma 让你第一时间知道服务挂了,Portainer 让你快速排查问题,Watchtower 让你不用操心版本更新——一套组合拳下来,运维效率提升不止一个档次。
评论区