惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
L
Lohrmann on Cybersecurity
Vercel News
Vercel News
P
Palo Alto Networks Blog
P
Proofpoint News Feed
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
L
LangChain Blog
Y
Y Combinator Blog
T
Tenable Blog
腾讯CDC
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU
A
Arctic Wolf
Security Latest
Security Latest
IT之家
IT之家
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
T
Tor Project blog
T
Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
Last Week in AI
Last Week in AI
D
Darknet – Hacking Tools, Hacker News & Cyber Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
AWS News Blog
AWS News Blog
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
量子位
T
Troy Hunt's Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
I
InfoQ
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
I
Intezer
爱范儿
爱范儿
C
Cisco Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

分享创造

分享 KCase 脑图测试用例生成平台(AI 辅助生成测试用例) 标签页囤积症自救:写了个插件 TabRack,主打快速检索、自动分类和 AI 摘要 [file-preview]一个比较全面的在线文件预览组件库-支持 react 和 vue 撸了 iOS 个[极简水印相机],直接免费 做了一个 V2EX Skill 写了个 iOS 打码 App「遮鸭 Maskduck」,纯离线免费 35 岁前端,裁员失业后,我花 1 个月做了个 AI 生图网站 亲身经历猫咪急症,我做了一款猫狗疼痛检测工具,希望能救你家毛孩一命 如何用 AI 做比较酷炫的落地页? 求真!最近 AI 生图的能力强到可怕 开源一个查看 k8s 的菜单栏工具-kubebar Packpour:我做了个专门给 App Store Connect 填多语言元数据的小工具 面对 140 年一遇的超级厄尔尼诺,我做了个全球监测小站 做了一个自动翻译的 Hacker News 客户端 做了一个 AI 头像生成器,可以免费生成 2 次 [送码 50 个] 自己手搓了个高颜值的倒数日 App——拾光机,求 V 友们指点 一个将苹果健康 APP 数据导出的工具,然后把你的数据喂给 AI 分析 我做了一个叫「订阅斩」的 iOS App,专门对付那些悄悄扣钱的订阅 做了个草率的日麻互动漫画,听听反馈 喜欢自己洗车的朋友们,我用 ai 做了一款洗车小程序 -- 洗车志 感谢 V2EX 上各位 NAS🍆 和 Datahoarder 玩家的关注和真实反馈!作为个人开发者,能得到这么多硬核玩家们的讨论,我非常荣幸。 用 AI 开发熊孩子自律的小程序 用 OpenClaw 搭建个人运动助手 今天摸鱼给 NanaAI 也接入了 GPT-Image-2 [Video Companion]一个 chrome 插件,解决大多对视频操作的需求~欢迎使用提 bug AI 时代,做产品简单了,把产品推广出去却变的更难了~ bestskills.dev - Skills 精选和评测站点 免 ROOT 强力卸载安卓广告软件 一个 All In One 的运维工具,支持 SSH、数据库、Redis 管理 [开源] Codeg V0.10:专注于代码生成的多智能体 IDE(cc、codex、gemini、opencode……),新版本重构了工作区,飞一般的体验,支持桌面端、服务器部署 老婆嫌鼻型不完美?我做个医美 AI,帮你一键分析变美效果! BrandMaker-3 分钟帮你搞定品牌资产设计 [开源·Actionow] 包含 Agent 辅助·团队协作·多租户·积分系统的 AI 影视创作 SaaS 平台 OCR 发票识别服务 编程小白用 Nextjs Saas 搭建的第一个 GPT Image 2 体验站 希声 (Still) :为 Audiobookshelf 打造的 iOS 原生客户端 Opus 真的牛炸了! 5 天和比 Mermaid 更专业的图表渲染引擎 最近在做一个 OPC 社区,欢迎大家注册。 做了一个内网/本机用的 todo 系统(rbtodo) 昨天上线一个推理密码的小游戏,大家有空玩玩。 用 golang 写了,一套面向个人音乐资产的本地优先音乐系统 自己做的 GPT Image 2 生图网站 可白嫖 Codex 设计的垃圾小游戏,玩完想吐 写了一个 NestJS 中文文档站 分享一个刚上线就挂的网站:蹭词需注意啊 深夜开源 OpenVibble,不需要开发板也可蓝牙连接 Claude Desktop 和 CC 监工了! Rust 写的 ML 驱动的本地漫画翻译器,一键汉化本子! 用 AI 帮助写简历和准备面试,给大家推荐这个我们开发的使用求职助手网站 给猫梳毛小游戏 Claude Code 小白免费从入门到精通,系列视频教程,第一期 一个把单词、句子、阅读、复习全打通的英语学习小程序 - “匠心英语学习助手” 年前说要把 macOS 的文件备份应用 savepoint 开源的,但是耽误了一阵子 做了个开源的 AI 代码安全智能体 mythos-agent,想在 V 站求轻拍 一个小项目:快速清理磁盘大文件的 Python 代码 我用 Agent 写了个 NFL(美国国家橄榄球联盟)随机生成器 & 抽签转盘 Basevolt: 我做了一个本地优先的数据库管理工具,一分钟生成管理后台 vibe 了一款记忆训练游戏 iOS 照片备份 App「🍉西瓜备份」上线,直接免费 我也来分享一个小游戏《勇闯霍尔木兹海峡》 solo 做了个 AI 图片转视频的工具站,来 V 站交个作业 大家好,我们的出海 GEO 平台 - Dageno AI,今天正式在 Product Hunt 上线了,诚邀大家来支持我们一票! 一个自动化工具,操作浏览器,常用功能支持 hub, LLM 友好 写了个双人爱之语测试网站,帮我和对象解决了多年的矛盾 开发了一个 patches 风格的数字矩形游戏,欢迎来挑战 BoringTun 不做 manager,那我用 Rust 做一个: WG-FRIEND PushGo,全新消息推送 App,开源免费,支持 iOS / watchOS / macOS / Android 做了一个 Typeless 平替,便宜 10 倍,用 Claude Code / Agent 时再也不用憋着慢慢打字了 一个 MacOS 右键新建文件的拓展应用,我知道本站大佬应该用不上😄 个人开发了 3 年的数据可视化工具发布桌面端了 产品派新版发布了,增加通知偏好邮件通知功能,修复发布产品网址的问题 我们把给不同产品单独写的 AI 客服,做成了一个通用产品 什么样的独立开发产品真的能赚到钱? GridMove for macOS:按窗口任意地方移动窗口,或者快速调整为自定义布局 写了个小工具,试图把 Everything 的体验带到 Mac 上 不只是 NAS:走出局域网, Nas Player Pro 依然能打 做了一个极简的分析澳门博彩游戏胜率和数学期望的网站,希望能对有这方面兴趣的兄弟们有点用 「开源」SONIC-LENS / MUSIC ARCHIVE / MAC + iPhone + iPad [开源] Vela — 一款本地优先、隐私安全的 AI 长文/小说创作 IDE gpt image 2 貌似全量上线了,捡漏了一个不错的域名,再试一次 分享几个效率小工具,在 Finder 中一键使用 claude code / codex-cli / opencode-cli / gemini-cli 打开项目 好消息,貌似我的开源项目被盗版,发布到了微软商店 # [拉票] 我用 TRAE SOLO 做了个 macOS App「到站请下车」(求支持) 越来越勤劳了,做了一个交易的小产品,即将上线…… 大功能更新再发一次:订小阅 - 小程序管理你的订阅 写了一个 skills,用于判断某些产品是否是智商税 打磨了一款远程 vibe 工具 给大家介绍一下我的第六个想法:免安装的 mac 磁盘空间清理利器 mac-space-cleanup skill 做了个剪贴板&截图增强工具 养小龙虾的朋友们快来测 agent 的 mbti🤖 任何一个 agent 都可以一键参与测试 如果你做过 segmentation,可能默认用了太久 argmax 跟风复刻了个 Web Harmonium,有点意思 分享下自己 vibecoding 的 android ssh 软件,基于 connectbot + frp 来实现 尝试用 claude code 做了一个完整的 saas 订阅站 PasteMemo v1.5.0:接力模式大重构,自动化接入 macOS 快捷指令 开源复刻 CodeX Computer Use 的「权限申请」交互,目前没看到比这个更细致的 做了个 Claude Code 多账号切换启动器,不用再反复 /login 了 code is cheap, show me your design ——分享一个我的 AI 时代的软件开发范式 折腾了个自托管 Docker Registry —— 一个镜像跑起来就是完整的(UI + 账户 + 权限) 用时一个月,开发了一款适合上班摸鱼的 web 端 Roguelike RPG 游戏 用 JS+HTML+CSS 做了一款网页版宝可梦游戏
我把 SaaS 从 Docker 迁移到 Rootless Podman:三个月踩坑实录 - V2EX
olddogs · 2026-06-19 · via 分享创造

最近几个月,我一直在重构 GoPanel 的底层容器架构。

在这个过程中,我做了一个很多人看来有点折腾的决定:

在生产环境逐步从 Docker 迁移到 Rootless Podman 。

这次迁移并不是为了追新。

而是因为随着 SaaS 场景越来越复杂,多租户隔离、安全边界以及资源利用率的问题开始变得越来越重要。

前后折腾了三个月,踩了不少权限和网络相关的坑。

今天把这段迁移过程中的经验、避坑方案以及一些实际感受整理出来,希望能给正在评估 Podman 的朋友一点参考。


Docker 依然是非常优秀的容器方案。

事实上,过去很多年我也一直是 Docker 的重度用户。

但随着业务的发展,我越来越关注下面几个问题。

1. 权限边界

Docker 的核心架构依赖 Docker Daemon 。

Docker Daemon 通常以 Root 权限运行。

对于多租户 SaaS 场景来说,它天然会成为一个高价值目标。

而 Rootless Podman 最大的特点之一就是:

容器可以完全以普通用户身份运行。

即使容器内部拥有 Root 权限。

在宿主机层面,它依然只是一个普通用户。

对于需要暴露公网服务的 SaaS 系统来说,这种隔离方式很有吸引力。


2. Daemonless 架构

Podman 本身没有中心化守护进程。

容器本质上就是普通 Linux 进程。

整个运行模型更加接近 Linux 原生系统。

对于长期运行的服务器来说:

  • 架构更简单
  • 故障链路更短
  • 与 Systemd 集成更加自然

3. GoPanel 的长期规划

这也是我最终决定研究 Rootless Podman 的原因。

我希望未来的面板底层具备:

  • 多租户能力
  • 更细粒度权限控制
  • 更低资源消耗
  • 更适合 SaaS 场景

因此最终把目光放到了 Rootless Podman 上。


二、Rootless Podman 的几个真实大坑

如果你准备在生产环境使用 Rootless Podman 。

下面几个坑建议提前了解。


坑 1:1024 以下端口无法绑定

Rootless 模式下。

Podman 是以普通用户运行的。

而 Linux 默认不允许普通用户绑定:

1~1023

范围内的端口。

例如:

podman run -p 80:80 nginx

大概率会直接报错。

解决方案

修改内核参数:

# 临时生效
sysctl net.ipv4.ip_unprivileged_port_start=80

# 永久生效
echo "net.ipv4.ip_unprivileged_port_start=80" >> /etc/sysctl.conf

sysctl -p

这样普通用户也能绑定低位端口。


坑 2:Volume 挂载权限错乱

这是我踩得最深的坑。

例如:

-v /data:/app

容器启动正常。

目录挂载正常。

但是程序疯狂报:

Permission denied

检查半天发现:

  • Linux 权限正常
  • 文件属主正常
  • 容器运行正常

最终问题出在:

subuid
subgid

Rootless Podman 的 UID 映射机制。


解决方案

使用:

--userns=keep-id

保持容器内外 UID 一致。

podman run -d \
  --name my_app \
  --userns=keep-id \
  -v /home/user/data:/app:Z \
  my_image

另外一个容易忽略的点

如果系统开启 SELinux:

:Z

一定不要省略。

例如:

-v /home/user/data:/app:Z

否则即使 Linux 权限正确。

SELinux 依然可能拒绝访问。


坑 3:从 Compose 到 Podman

大多数 Docker 用户已经习惯:

docker-compose.yml

切换到 Podman 后。

很多人会先尝试:

podman-compose

对于普通项目来说完全够用。

但在复杂网络场景下:

  • 多网络
  • 服务发现
  • DNS 解析

偶尔还是会遇到一些需要额外排查的问题。


我的做法

对于未来有 Kubernetes 规划的项目。

我更倾向于直接使用:

podman play kube

例如:

podman play kube cluster.yaml

Podman 对 Kubernetes YAML 提供了不错的兼容支持。

对于未来需要迁移 Kubernetes 的团队来说比较友好。


三、迁移后的实际感受

说了这么多坑。

收益呢?


内存占用

在我们的测试环境中:

  • 单机部署约 50 个轻量服务
  • 长时间运行

观察到整体内存占用有一定幅度下降。

不同业务场景差异较大。

目前我仍在持续压测和验证数据。

但至少从现阶段来看:

Rootless Podman 在资源利用率方面表现不错。


与 Systemd 的深度集成

这是我个人最喜欢的能力之一。

Podman 可以直接生成 Systemd 服务:

podman generate systemd \
  --new \
  --files \
  my_app

之后直接:

systemctl enable container-my_app.service

systemctl start container-my_app.service

以后:

  • 自动重启
  • 开机启动
  • 异常恢复

全部交给 Linux 原生 Systemd 管理。

整个运行模型非常干净。


四、关于 GoPanel ,以及为什么我要重构它

最后也和大家坦诚聊聊 GoPanel 目前的情况。

目前 GitHub 上公开的 GoPanel v1.x 版本,并不是一个从零开始凭空写出来的项目。

它的基础架构借鉴和参考了 1Panel 的优秀设计。

这也是为什么很多朋友第一次看到 GoPanel 时,会觉得界面和交互有些熟悉。

原因很简单。

我认为 1Panel 在易用性和交互体验方面做得非常优秀。

对于服务器管理面板来说,这是值得学习的地方。

所以在项目早期,我选择站在前人的肩膀上,把更多时间投入到自己真正想解决的问题上。

而我真正关注的问题主要有三个:

  • SaaS 场景支持
  • 多租户隔离能力
  • Rootless Podman 容器生态

最近几个月我做得最多的工作,其实都在底层:

  • Docker → Rootless Podman
  • 权限体系重构
  • Systemd 生命周期管理
  • 网络栈改造
  • 多租户资源隔离

很多工作甚至看不到界面变化。

但它决定了系统未来能走多远。

目前仓库中的代码仍然保留着部分历史实现。

后续会逐步把新的 Rootless Podman 架构合并进入主分支。

我的目标很简单:

保留优秀的交互体验,

用更轻量、更安全、更适合 SaaS 场景的底层架构重新实现它。


五、一点题外话

这些年我做过很多事情。

修过车。

跑过长途。

做过户外垂钓项目。

写过 PHP 。

后来又写 Golang 。

创业成功过,也失败过。

最近整理这套架构的时候。

顺手把这些年从辍学到创业、从修车到写代码的经历整理成了一个 GitHub 项目。

算是给自己这些年的一次归档。

有兴趣的话可以看看。

Refactoring the Self

Life is a legacy system that requires constant refactoring.

https://github.com/aihop/Refactoring-the-Self


相关链接

GoPanel

https://github.com/aihop/gopanel

在线 Demo

https://demo.gopanel.run

官方网站

https://gopanel.cn


如果你在生产环境落地过 Rootless Podman 。

或者对下面这些问题有经验:

  • subuid/subgid 映射
  • Rootless 网络性能
  • slirp4netns 调优
  • Podman 多租户实践

欢迎一起交流。