Docker开始支持WebAssembly,应用更轻巧灵活

Docker宣布技术预览WebAssembly支持,这将可使开发者更容易构建WebAssembly Runtime应用程序,同时,Docker也宣布加入非营利组织Bytecode Alliance,以参与WebAssembly和WebAssembly System Interface(WASI)的发展。

原本WebAssembly的目的,是为了要在网页浏览器快速执行原生程序代码,但是因为WASI的发展,WebAssembly应用程序已经跨出浏览器之外,可在云计算和边缘环境运行。WebAssembly让开发者以40多种语言撰写程序,并且编译成WebAssembly程序代码,在沙盒环境中安全的运行。

而Docker原先发展的目标,就是要简化程序开发的复杂性,使开发者不需要在意底层技术,借由容器使应用程序的构建、共享和运行更为容易,Docker官方提到,他们将WebAssembly视为Linux容器的补充技术,开发者可以根据使用案例选择想要用的技术,甚至是两者同时使用。

Docker集成WebAssembly的具体作为,是将镜像文件管理搬迁到containerd,使用和OCI兼容的构件和containerd shim,Docker官方与WasmEdge合作创建了containerd shim,可从OCI构件中截取WebAssembly模块,并在WasmEdge Runtime上运行。同时,Docker也添加对声明WebAssembly Runtime的支持,使其能够使用新的shim。

Docker将持续扩展WebAssembly支持度,包括支持多线程、垃圾收集,以及简化开发者工作等功能。