建站日志 09-11:搬家收官,坑都在深水区
Docker 数据盘迁移的两个隐蔽坑:containerd 的镜像实体、bind mount 树里的软链。
香港机开荒收官日。面板、容器环境、反代、证书全部就位,顺带把该迁的数据全部落在数据盘。系统盘只留系统,增长类的东西一律去数据盘——这是老规矩。
新坑挖出两个,都够写进教材。
第一个:Docker 迁移数据盘,改了配置里的数据根目录,一验证,容器都在跑,以为完事了。细看才发现不对——新版 Docker 底层换了 containerd,镜像实体根本不看那个配置,搬走的只是元数据的壳,几十 G 的镜像层还赖在系统盘的老窝里。必须把 containerd 自己的根目录也改掉才算数。教训:迁移要以 df 的实测为准,不能以配置文件为准,配置写了和真搬了是两回事。
第二个更阴:建站目录用 bind mount 挂进数据盘,目录里的符号链接在宿主机上好好的,进了容器就断。查下来是机制问题——bind mount 树内的软链只在宿主机的命名空间里生效,容器里没有那个 /data 路径,链接自然悬空。修法是把软链换成对容器和宿主都透明的 bind mount。这类问题最气人的地方在于报错信息完全不指向根因。
好消息也有:泛域名证书签好了,以后加子域名不用重新走验证;内核网络优化开了,到大陆的线路测速对得起价钱。
晚上十一点,环境就绪。内容迁移,明天继续。