写给懒猫微服玩家的容器小书 Docker篇(三):《容器部落生活》

《容器部落生活》讲的是 容器生命周期管理,包括容器的启动、停止、查看、交互、日志、后台运行、重启策略等操作

一直想写一本容器小书,真好懒猫基本都做了容器化,所以把这部分分享出来。不同的是,懒猫微服中使用 pg-docker 来替代 docker 命令,使用 dockge 来执行 docker-compose。以下讲解以标准 docker 为主,这样子既学会了 docker 知识,也能够在懒猫微服上启动 Docker 服务。

镜像旅馆的旅途告一段落,小李的下一站是容器部落

老周牵着他走过一条闪烁着数字光芒的通道,一排排运行中的应用像帐篷一样排列着。有人在调试日志,有人在重启服务,还有人用 bash 正在某个容器里“打补丁”。

老周说:

“镜像只是静态的模板,容器才是它们的生命。容器是镜像运行出来的真实世界。”


🧠 技术基础:容器 vs 镜像

项目 镜像(Image) 容器(Container)
类比 模板、配方 实际的运行实例
特性 只读 可读写
作用 用来创建容器 实际运行中的程序环境
状态 不运行 可运行、停止、销毁

阅读更多

写给懒猫微服玩家的容器小书 Docker篇(四):《数据之岛与持久化卷》

一直想写一本容器小书,真好懒猫基本都做了容器化,所以把这部分分享出来。不同的是,懒猫微服中使用 pg-docker 来替代 docker 命令,使用 dockge 来执行 docker-compose。以下讲解以标准 docker 为主,这样子既学会了 docker 知识,也能够在懒猫微服上启动 Docker 服务。

《数据之岛与持久化卷》讲的是 Docker Volume 持久化数据方案、挂载宿主机目录、多个容器共享数据、自动创建卷、数据备份与恢复等

🏝️ 开篇:数据会随浪消失

有一天,小李运行了一个容器,里面的 Flask 项目能正常写入用户信息到 SQLite 数据库。可当容器一停止,再启动——所有数据消失了!

老周说:“你的数据,被潮水带走了。”

“Docker 容器默认的文件系统是临时的,只要容器删除,数据也就没了。想让数据真正存活,就要登上‘数据之岛’。”


🧠 基础概念:数据卷(Volume)

Docker 提供了三种数据持久化方案:

方案 用法 场景
Volume Docker 管理的专属数据区 最推荐、安全、可多容器共享
Bind Mount 映射宿主机目录 更灵活,适合本地调试
tmpfs 临时存储在内存 适合敏感数据,重启即丢弃

本章重点讲解:Volume(数据卷)Bind Mount(绑定挂载)


阅读更多

写给懒猫微服玩家的容器小书Docker篇(五):《多容器交响曲:Docker Compose 上场》

一直想写一本容器小书,真好懒猫基本都做了容器化,所以把这部分分享出来。不同的是,懒猫微服中使用 pg-docker 来替代 docker 命令,使用 dockge 来执行 docker-compose。以下讲解以标准 docker 为主,这样子既学会了 docker 知识,也能够在懒猫微服上启动 Docker 服务。

《多容器交响曲:Docker Compose 上场》讲的是使用 Docker Compose 统一编排多容器服务,理解 YAML 配置结构、服务依赖、网络、挂载、构建策略、变量管理、Compose vs K8s 初探等


🎼 开篇:服务之间的管弦乐团

随着项目日益复杂,小李的服务已经不再是一个容器就能承载的了。

前端、后端、数据库、缓存、日志系统……像一个交响乐团,需要统一调度、和谐配合。

老周递给他一个新的工具:“Docker Compose——它是你的指挥棒。”


🎻 第一节:什么是 Docker Compose?

老周解释:

“Docker Compose 是 Docker 的多容器编排工具,用一份 docker-compose.yml 文件,就能同时启动、停止、构建多个服务。”

Compose 帮你解决:

  • 多个服务启动顺序
  • 多容器共享网络
  • 统一管理环境变量
  • 配置简洁、开发者友好
  • 跨平台部署一致

阅读更多

懒猫微服开发篇(零):上架应用需要哪些知识

懒猫微服的可玩性在于可以让开发人员放开手脚来做一些事情,等于是提供了一个可靠的基础设施。那么理所当然我们可以把开源的知识应用到上面,比如开发或者移植应用,或者干脆部署一些好玩的东西。这在传统 NAS 上实现起来很困难,甚至都没有包管理工具。

我们看一看开发懒猫应用,需要什么样的知识?

那么,开发懒猫微服的应用需要掌握哪些技能呢?

NPM

懒猫微服的 CLI 本质上是一个通过 NPM 全局安装的工具包,因此掌握一些基本的 NPM 使用方法是必要的。

1
npm install -g @lazycatcloud/lzc-cli
阅读更多

懒猫微服排查篇(二):上架应用后,pip 安装报错 HASH 不一致

懒猫 ENV 查看器第二版更新的时候,审核人员和我说遇到了这个错误。说来也奇怪,都用了 docker 了,也会遇到依赖的问题。

6c779ad7537d89eb4bd9e40c0d69b7d8.png

https://appstore.lazycat.cloud/#/shop/detail/xu.deploy.env

ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE
Expected sha256 4ceb…
Got 5519987f…

阅读更多

懒猫微服排查篇(一):403 Forbidden!记应用商店 pip 使用清华源的报错

由于自身调试 OIDC 需要,写了一个懒猫 ENV 查看器,然后发到商店里给大家使用/

打包的时候偷了个懒,直接打包的没有用容器,然后其中一位用户就遇到这个问题:

bcd8d32b6f8193da16e2e456be0efb63

要了下日志,结果是发现访问清华源有问题,被清华源直接返回了 403,这个问题还比较稀奇,毕竟在我的印象里清华源一直都很稳。

阅读更多

懒猫微服故事篇(一):服务器宕机之后,我和前端靠懒猫微服结对编程

故事篇分享我和懒猫微服的方方面面,这里没有高深的技术,也没有过多的讲解。我始终坚信着技术是服务于生活,因为它能够给我们带来小确幸。更多的时候,我们追求技术,有时候为了兴趣,有时候为了心目中那小小的执念。慢慢在这个过程中会成为别人眼中的哆啦 A 梦。懒猫微服是一个百宝箱,我们能拿出千变万化的道具。事情会过去,但是感动和记忆会留下,我们可以随时追忆。

和前端同学约好晚上一起过一遍 API,主要是确认 Swagger 上的接口和字段设置。我事先把后端代码、API 和 Swagger 文档都部署在服务器上,让他先通过浏览器简单预览一遍,然后再开始写前端代码,这样能提前避免前后端格式对不上的问题。

准备开始之前,结果他突然说:‘你的 Swagger 打不开了。我登陆到管理控制台看了下,果然和之前部署 Dify 一样的问题,telnet 端口和 Ping 都正常,但是 SSH 和 Web 应用全都访问不了了。从基本监控俩看,CPU 和磁盘也没什么问题。大概率又是 OOM 了。

image-20250522074447237

DDL 赶在眼前,得赶紧让他连到我的服务器或者开发机才好。第一个想到的是端口转发,把服务映射到公网上去,一方面调试的时候属于明文传输,在互联网上很容易被监听,篡改报文。另一方面,家里的公网 IP 经常出问题,总有一阵子会封禁所有的端口,所以最后采取了异地组网的方式。

我和他说,我在我的 NAS 上给你开一个账户,然后你试试来访问我的 Macbook 上的服务。你去下载一个懒猫微服,下载地址是https://lazycat.cloud/download,然后扫描我给你的二维码,这样就可以访问我的NAS了。(回看这段感觉有点像电信诈骗哈哈,感谢前端同学的信任)

阅读更多

懒猫微服故事篇(二):西湖邂逅后,我手把手教她玩转NAS

去年与她相识于杭州,是在西湖的游船上。参加活动过后,我想在杭州逗留一天,看看被世人称为眼泪的西湖水。没做攻略,匆匆向前台要了手册,然后来到距离最近的码头。磨磨蹭蹭之后总算开船,隔着一堆大爷大妈看着看着她在拍照,也邀请我帮她拍照。于是找她要攻略,一起逛三潭映月,净慈寺,讨论雷峰塔的倒下。

因为苏堤,我们聊到东坡,美食以及宦海沉浮。聊到最爱的粤菜和川菜更是共同的爱好,去成都旅游的时候找他要了攻略,并且约定下次去她的城市旅游给我当导游。

image-20250608222101922

阅读更多

懒猫微服炫技篇(一):使用懒猫微服的穿透服务,车机使用DS music 远程听歌,黑群晖不用再洗

声明:炫技篇不是最佳实践,只是为了记录过程和那颗折腾的心。虽然很多时候可以用钱来升级或者多忍一忍就好了。但是折腾的心始终是不安分的,技术在职场中证明不了什么,但是在生活中可以。当晦涩的理论不仅仅存在于书本,才能给我们带来更大的价值。这个过程中能够找到我们到底是为了什么才需要这项技术,问题的痛点,以及这技术的前世今生。。。。。。

前些天给老旧的车载导航升级了 WIFI 功能,大致就是出厂的时候锁了 wifi 的驱动和 UI,然后通过 ADB 解锁的,然后通过路由器 Mesh 升级了老旧的 APP 以及导航数据,这次又带来了全新的功能,给普通车机升级 Carplay。

毕竟我的初衷,就是想在车机上安装懒猫 APP 而已啊。

Part 1:

下载懒猫微服 APK,通过 U 盘导入安装,报错:解析错误,解析软件包时出现问题。

于是和懒猫相关技术进行确认,很快 CEO 给到了答复,目前只支持比亚迪和华为。毕竟国产车嘛,路子野一点也正常。

那我如果不用安卓,换 Carplay 呢?是不是就能用 IOS 的客户端直接投过去了?

阅读更多

懒猫微服炫技篇(二):使用懒猫微服倒推停电时间

早晨的时候,突然听到饮水机和扫地机器人重启的声音,只有一种可能是电闸重启了。没有人为重启,那就是意外断电了。赶紧 SSH 登录到懒猫微服,第一时间查看 uptime,果然 3 分钟之前重启了。懒猫的 BIOS 有上电自启的功能,所以能够看到确实是停电了。

610a2721b7c9a4c5bcdc51a1960736b9

使用 uptime -s 显示系统最后一次启动的具体时间

阅读更多