懒猫微服实战入门(十):通过 nmtui 设置静态 IP,接入旁路由实现科学上网
日常开发中,我主要使用的是 MacBook 作为主力机。但有些软件、驱动或容器服务必须在 X86 架构环境下测试,这时懒猫微服就是一个很好的辅助平台。然而在一些网络场景下,为了访问特定服务,还需要将这台设备接入旁路由中。 不然我访问 Dockerhub 是这样的,经常会超时,只能用不是很全的镜像站。 群晖等设备提供的图形化网络面板,懒猫微服这类轻量系统没有 GUI,只能使用命令行工具。NetworkManager 提供了一个非常好用的文本界面工具:nmtui。 什么是 nmtuinmtui 是 NetworkManager 的 TUI(Text-based User Interface)组件,界面类似简化版 GUI,操作简单,功能却很强大。通过它,我们可以方便地完成以下配置: 选择并连接网络设备(有线或无线) 设置 手动 IP 地址 指定 网关、DNS 服务器 管理 路由策略 开启或关闭 DHCP 自动获取功能命令如下: 1nmtui 设置静态 IP 接入旁路由打开 nmtui 后,进入“Edit a connection”,编辑你连接的网卡(如 enp2s0),手动设...
懒猫微服实战入门(九):给懒猫安装图形界面,使用 XRDP 实现远程桌面
虽然我们日常使用 Linux 系统时,大多数操作都是通过终端完成的,比如运行服务、查看日志、编辑配置文件等。但在某些场景下,图形界面仍然是非常有用的:例如需要打开浏览器进行调试、运行带 GUI 的应用程序,或者想给不太熟悉命令行的同事一个更友好的访问方式。 因此,这一篇教程就来介绍如何在懒猫微服上安装图形桌面环境,并通过 XRDP 实现远程桌面连接。我们选择的是轻量级的 XFCE4 桌面环境,它资源占用小,运行稳定,界面风格有点像老版本 Windows,非常适合资源有限的 VPS 或微型容器环境。当然,你也可以选择 KDE Plasma、GNOME 等更现代的桌面环境,但安装包体积和资源占用会更高。 一键安装脚本经过多次测试,我总结了一份实用的一键安装脚本,适用于基于 Debian 的系统(如 Ubuntu 或懒猫微服): 123456789101112131415161718192021222324252627#!/usr/bin/env bashset -eecho "==> 设置 keyboard-configuration 为无交互模式"ech...
懒猫微服进阶心得(四):每次重启都丢配置?用 systemctl --user 自动装回环境!
在懒猫微服中,为了防止用户误操作破坏系统,默认启用了“重启还原机制”——每次重启都会还原大部分系统改动。不过,用户主目录的数据是保留的(例如 /root/),这就给我们留下了一条生路。 以往每次重启后,我都要手动重新安装 htop、sudo、httpie 等工具,重复操作实在麻烦。之前在 VIP 群里沟通过能否允许使用 systemctl 自启脚本,现在终于支持了 systemctl --user 的开机启动功能,第一时间来体验一下! 💻 安装脚本 init.sh我们把需要安装的软件统一写进一个脚本,只安装未安装的部分,避免重复浪费时间。同时也支持远程安装一些工具,例如 superfile。 1234567891011121314151617181920212223242526272829303132333435363738#!/usr/bin/env bashset -e # 任意步骤失败立即终止PACKAGES=( sudo htop wget build-essential httpie exa duf bat # 可以继续添加:docker.io ...
懒猫微服实战入门(八):懒猫微服 × SSH Remote:打造随时随地的云端开发环境
Apple 开始换了 ARM 芯片之后,我们还处于 X86 和 ARM 交叉的阶段。所以有时候还得有一台 X86 的开发环境来测试一些兼容性问题。一开始手里面只有低配置的软路由,后来入手了懒猫微服,这个 11 代 i5 的 CPU 终于能够编译一些重型的任务了。 下面演示如何把懒猫微服配置成一台云端开发机,并分别用 VS Code 与 PyCharm 进行远程开发。 虽然懒猫微服的商店已经上架了 code-sever 可以开箱即用,除此之外我们也来探索下其他的方案。 1 · 准备 SSH 免密登录修改 ~/.ssh/config(若无自行创建): 123456789Host lzc HostName server.heiyu.space # 服务器域名 / IP User root # 默认用户名 IdentityFile ~/.ssh/id_ed25519 # 私钥路径 Port 22 # 默认端口 ServerAliveInterva...
写给懒猫微服玩家的容器小书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 文件,就能同时启动...
写给懒猫微服玩家的容器小书 Docker篇(四):《数据之岛与持久化卷》
一直想写一本容器小书,真好懒猫基本都做了容器化,所以把这部分分享出来。不同的是,懒猫微服中使用 pg-docker 来替代 docker 命令,使用 dockge 来执行 docker-compose。以下讲解以标准 docker 为主,这样子既学会了 docker 知识,也能够在懒猫微服上启动 Docker 服务。 《数据之岛与持久化卷》讲的是 Docker Volume 持久化数据方案、挂载宿主机目录、多个容器共享数据、自动创建卷、数据备份与恢复等🏝️ 开篇:数据会随浪消失有一天,小李运行了一个容器,里面的 Flask 项目能正常写入用户信息到 SQLite 数据库。可当容器一停止,再启动——所有数据消失了! 老周说:“你的数据,被潮水带走了。” “Docker 容器默认的文件系统是临时的,只要容器删除,数据也就没了。想让数据真正存活,就要登上‘数据之岛’。” 🧠 基础概念:数据卷(Volume)Docker 提供了三种数据持久化方案: 方案 用法 场景 Volume Docker 管理的专属数据区 最推荐、安全、可多容器共享 Bind Moun...
懒猫微服故事篇(一):服务器宕机之后,我和前端靠懒猫微服结对编程
故事篇分享我和懒猫微服的方方面面,这里没有高深的技术,也没有过多的讲解。我始终坚信着技术是服务于生活,因为它能够给我们带来小确幸。更多的时候,我们追求技术,有时候为了兴趣,有时候为了心目中那小小的执念。慢慢在这个过程中会成为别人眼中的哆啦 A 梦。懒猫微服是一个百宝箱,我们能拿出千变万化的道具。事情会过去,但是感动和记忆会留下,我们可以随时追忆。 和前端同学约好晚上一起过一遍 API,主要是确认 Swagger 上的接口和字段设置。我事先把后端代码、API 和 Swagger 文档都部署在服务器上,让他先通过浏览器简单预览一遍,然后再开始写前端代码,这样能提前避免前后端格式对不上的问题。 准备开始之前,结果他突然说:‘你的 Swagger 打不开了。我登陆到管理控制台看了下,果然和之前部署 Dify 一样的问题,telnet 端口和 Ping 都正常,但是 SSH 和 Web 应用全都访问不了了。从基本监控俩看,CPU 和磁盘也没什么问题。大概率又是 OOM 了。 DDL 赶在眼前,得赶紧让他连到我的服务器或者开发机才好。第一个想到的是端口转发,把服务映射到公网上去,一方面...
写给懒猫微服玩家的容器小书 Docker篇(三):《容器部落生活》
《容器部落生活》讲的是 容器生命周期管理,包括容器的启动、停止、查看、交互、日志、后台运行、重启策略等操作 一直想写一本容器小书,真好懒猫基本都做了容器化,所以把这部分分享出来。不同的是,懒猫微服中使用 pg-docker 来替代 docker 命令,使用 dockge 来执行 docker-compose。以下讲解以标准 docker 为主,这样子既学会了 docker 知识,也能够在懒猫微服上启动 Docker 服务。 镜像旅馆的旅途告一段落,小李的下一站是容器部落。 老周牵着他走过一条闪烁着数字光芒的通道,一排排运行中的应用像帐篷一样排列着。有人在调试日志,有人在重启服务,还有人用 bash 正在某个容器里“打补丁”。 老周说: “镜像只是静态的模板,容器才是它们的生命。容器是镜像运行出来的真实世界。” 🧠 技术基础:容器 vs 镜像 项目 镜像(Image) 容器(Container) 类比 模板、配方 实际的运行实例 特性 只读 可读写 作用 用来创建容器 实际运行中的程序环境 状态 不运行 可运行、停止、销毁 🛫 第一节:容器的...
懒猫微服进阶心得(三):一台机器跑三套 Docker?深入解析懒猫容器的共存机制(下)
在上一期里,我们剖析了懒猫微服原生的三套 Docker 共存方案,这次我们来看看怎么在懒猫微服上启动新的 dev-docker 引擎,既能拓展使用,但又不与现有环境相互污染。 核心思路 独立 daemon.json 指定专属数据目录 / Socket 一个包装脚本 dev-docker 让你照常敲 docker 命令 需要时随时启用,不用时一条命令即卸载 目录规划我目前是在 root 目录下新建了一个 dev 目录,新的容器所有数据都在这个目录下。 123456.├── dev/│ ├── data/ # 镜像层、容器元数据│ ├── exec/ # 运行时文件│ └── daemon.json└── dev-docker # 包装脚本,照样敲 `docker` 提示:docker.sock、docker.pid 会在启动时自动生成到 dev/ 里。 生成 daemon.json这个是主要的文件,定义了 dev-docker 的数据目录,以及命名空间的隔离。 12345678910111213# 先拿到绝对路径,...
写给懒猫微服玩家的容器小书 Docker篇(二):《镜像旅馆的秘密》
一直想写一本容器小书,真好懒猫基本都做了容器化,所以把这部分分享出来。不同的是,懒猫微服中使用 pg-docker 来替代 docker 命令,使用 dockge 来执行 docker-compose。以下讲解以标准 docker 为主,这样子既学会了 docker 知识,也能够在懒猫微服上启动 Docker 服务。 《镜像旅馆的秘密》讲的是 Docker 镜像的原理、分层结构、生命周期、Docker Hub 上传与下载、常见镜像命令详解🏰 开篇:进入镜像旅馆自从小李用 Docker 成功打包并运行了自己的 Flask 项目,他的开发效率飞快提高。 某天,老周带他来到一座巨大的数字建筑——Docker 镜像旅馆。 “这是你所有镜像的家,”老周说,“也是全球程序员共享旅程资源的中转站。” 镜像旅馆里,层层叠叠地存放着成千上万个镜像,就像一栋模块化的高楼大厦。 🧱 镜像的本质:一层一层搭起来的文件系统老周告诉小李: “镜像(Image)其实是一个只读的分层文件系统。你写的每一条 Dockerfile 指令,都会构成一层 Layer。” 比如这个简单的 Dockerfil...
