折腾 Docker 和面板之后,我决定不折腾了
最近为了更省心地部署一些软件,我重新拾起了 Docker,顺便装了一个叫 DPanel 的面板来管理容器,和一直在用的 aaPanel 搭配着用。本以为能一劳永逸,结果走了一圈,发现大部分服务还是老老实实地跑在裸机上。
一开始我的想法挺大的:把大部分服务都迁到 Docker 里,比如我的 Halo 博客。想象中,拉个镜像、配个端口,一切干净清爽。但实际操作时,第一个坎儿就卡在了数据库上。我的系统里已经有现成的 MariaDB 在跑,而 Halo 容器需要连这个数据库。容器和宿主机之间的网络、权限、配置折腾了半天——容器里连宿主机 IP 要手动指定,端口要暴露,数据库还得允许远程连接。搞了一圈还是别扭,最后放弃了。
于是我退了一步,只在 Docker 里跑一些相对独立的应用,比如那些不需要跟宿主机数据库或文件系统深度绑定的项目。剩下的软件,比如 Halo 博客系统、OneDev 代码仓库等,继续裸机部署。一个混合的方案,虽然没那么"潮",但胜在稳定、省心。
其实我也想过把 Halo 换成更轻量的 Typecho,把 OneDev 换成 Gitea。Typecho 的 SQLite 模式连数据库都省了,Gitea 也是出了名的轻。但是一算账:现有数据要导,主题要换,插件要重新配,使用习惯也得改。折腾下来至少一两天,而且最近还有其他正事要忙。算了,凑合用吧。我做的唯一优化是:把 JVM 的内存参数调了调——Halo 默认的堆内存给得比较大,我根据实际访问量降到了合理范围;同时把 Docker 里一些不再用的镜像和容器清理掉,腾出了大概 700 来 MB 的内存空间。勉强能用,也就没再动。
写了这么多,其实想劝一句:别在博客系统上反复纠结。选一个顺手的(比如 Halo、Typecho、Hugo 都行),把重心放到写文章上。今天想换这个,明天想换那个,最后发现文章一篇没写,日志倒是写了一堆迁移笔记。有那工夫,不如老老实实坐下来,认真写一篇有内容的文章。系统只是工具,内容才是根本。用顺手了就别瞎折腾——这话也是对我自己说的。