完全在浏览器中的容器构建
摘要
一个完全在浏览器中使用客户端代码构建容器的Web应用程序,展示了自定义容器工具的强大功能。用户可以选择基础镜像、运行Shell脚本,并将生成的镜像导出为tar文件。
<p><a href="https://lobste.rs/s/vvb79k/fully_browser_container_builds">评论</a></p>
查看缓存全文
缓存时间: 2026/05/25 13:08
# 完全在浏览器中构建容器
来源:https://ochagavia.nl/blog/fully-in-browser-container-builds/
容器很有趣。生态极其开放,内部机制任由任何人探索。一旦你理解了相关规范(https://github.com/opencontainers),就能解锁构建自定义工具的能力,甚至可能发现意想不到的用例¹(https://ochagavia.nl/blog/fully-in-browser-container-builds/#fn:1)。说到“意想不到的用例”,今天我有一个演示要分享:一个在浏览器中构建容器的 Web 应用,完全依赖客户端代码。
### 试一试
眼见为实,不妨前往演示页面(https://container-builder.ochagavia.nl/)亲手构建一个容器?你将能够:
1. 选择一个基础镜像
2. 指定容器启动时运行的 shell 脚本
3. 将生成的镜像导出为 tar 文件,随后可加载到 `docker` 中
*重要提示:这是一个研究原型,请勿用于严肃用途。如果你需要生产就绪的方案,欢迎联系交流。*
### 它是如何工作的?
容器镜像本质上就是一组文件(详情参见这篇文章(https://ochagavia.nl/blog/crafting-container-images-without-dockerfiles/)中的剖析)。我们可以下载、解包、操作并重新打包它们,整个过程无需离开浏览器!只要你能在浏览器的沙盒中构建层,可能性就是无限的。
其实也没什么可多说的。如果你试用演示页面,会看到每个构建步骤的构建日志。此外,构建器的源代码位于此处(https://github.com/aochagavia/in-browser-container-builder),如果你对具体细节感兴趣的话。
### 超越浏览器
老实说,我认为浏览器内构建容器主要是噱头,这大概也是之前没人费心记录它的原因。不过,这个实验确实有趣,也展示了自定义容器工具的能力。
问题是……虽然开发自定义工具很有趣,但通常更实际的做法是遵循成熟的路径(https://boringtechnology.club/)。因此,我们常常忘记还可以开发自定义工具,有时便妥协于 `docker build` 及其同类工具的局限性。
然而事实证明,自定义工具带来的优势有时实在难以舍弃。例如,在我近期的一个咨询项目中,我们将镜像创建时间缩短到了仅仅几秒,即使是几个 GiB 大小的镜像!当你自己构建工具时,可以控制架构、优化策略和缓存策略,从而带来**巨大的**加速。
所以……下次当你遇到容器工具的限制时,请记住我们其实有选择。只要你掌握了容器基础知识,就能构建出比 `docker build` 更能解决你问题的工具!或者,如果你愿意,也可以继续使用标准工具——但这次是出于主动选择,而非迫不得已。
相似文章
浏览器标签中的类Linux内核 - 深入解析BrowserPod架构
深入解析BrowserPod架构,这是一个基于WebAssembly内核的浏览器内沙箱,完全在客户端运行兼容Linux的应用程序。本文涵盖内核设计、磁盘和网络子系统,以及其在浏览器中运行诸如Claude Code等工具的能力。
自托管的开发沙箱与预览URL(Docker、Go、无K8s)
sandboxed 是一个开源引擎,能将单个 Linux 机器转变为一系列隔离的开发沙箱,配备编码代理和实时预览 URL,支持自托管且易于安装。
WebHarbor - 我们将真实网站“对接”到本地,供网页代理使用![R]
WebHarbor 将 15 个真实网站(Amazon、GitHub、BBC 等)打包为自包含的 Flask+SQLite 应用,置于单个 Docker 镜像中,支持亚秒级重置,专为可重复的网页智能体评估与训练而设计。该项目邀请社区贡献,以扩展到 100 多个网站,并提供合著机会。
我构建了Capsule Bash,一个专为无需配置的代理设计的沙盒化Bash。
Capsule Bash 是一个面向 AI 代理的沙盒化 Bash 环境,提供基于 WebAssembly 的安全隔离和丰富的命令反馈,无需复杂设置。
@gregpr07: 我们构建了新的浏览器基础设施。比其他自定义Firecracker虚拟机便宜3-6倍。自定义Chromium分支。裸金属。>$0.02/小…
Greg pr07 宣布了一种新的浏览器基础设施,采用自定义Firecracker虚拟机、Chromium分支和裸金属,成本降低高达6倍,亚秒级冷启动,支持10,000个并发浏览器。