当前位置:首页 > 科技  > 知识百科

Docker+Wasm 技术预览简介

来源: 责编: 时间:2023-08-07 16:30:39 383观看
导读 什么是 Wasm?
WebAssembly,通常简称为 Wasm,是一种相对较新的技术,允许您编译用 40 多种语言(包括 Rust、C、C++、JavaScript 和 Golang)编写的应用程序代码,并在沙盒环境中运行它

什么是 Wasm?
WebAssembly,通常简称为 Wasm,是一种相对较新的技术,允许您编译用 40 多种语言(包括 Rust、C、C++、JavaScript 和 Golang)编写的应用程序代码,并在沙盒环境中运行它。R7x28资讯网——每日最新资讯28at.com

最初的用例侧重于在网络浏览器中运行本机代码,例如Figma、AutoCAD和Photoshop。事实上,fastq.bio在将其基于 Web 的 DNA 序列质量分析器转换为 Wasm 时,速度提高了20 倍。迪士尼在 Wasm 之上构建了他们的Disney+ 应用程序开发工具包!浏览器中的好处显而易见。R7x28资讯网——每日最新资讯28at.com

但由于WebAssembly 系统接口(WASI),Wasm 正在迅速传播到浏览器之外。Vercel、Fastly、Shopify和Cloudflare等公司支持使用 Wasm 在边缘运行代码,而Fermyon正在构建一个平台以在云端运行 Wasm 微服务。R7x28资讯网——每日最新资讯28at.com

为什么是Docker?
在 Docker,我们的目标是通过克服应用程序开发的复杂性来帮助开发人员将他们的想法变为现实。我们努力让构建、共享和运行您的应用程序变得容易,无论底层技术如何。通过让所有人都能使用容器,我们证明了我们有能力让开发人员的生活更轻松,并被公认为最受欢迎的开发人员工具第一名。R7x28资讯网——每日最新资讯28at.com

我们将 Wasm 视为 Linux 容器的补充技术,开发人员可以根据用例选择他们使用的技术(或两者!)。随着社区探索 Wasm 的可能性,我们希望使用您了解和喜爱的经验和工具帮助使 Wasm 应用程序更容易开发、构建和运行。R7x28资讯网——每日最新资讯28at.com

Wasm 集成实际上是如何工作R7x28资讯网——每日最新资讯28at.com

1.我们正在利用我们最近的工作将图像管理迁移到 containerd,因为它提供了使用与 OCI 兼容的工件和 containerd 垫片的能力。R7x28资讯网——每日最新资讯28at.com

2.我们与WasmEdge合作创建了一个 containerd shim。该 shim 从 OCI 工件中提取 Wasm 模块并使用 WasmEdge 运行时运行它。R7x28资讯网——每日最新资讯28at.com

3.我们添加了声明 Wasm 运行时的支持,这将允许使用这个新的 shim。R7x28资讯网——每日最新资讯28at.com

安装预览版后,我们可以运行以下命令来启动示例 Wasm 应用程序:R7x28资讯网——每日最新资讯28at.com

docker run -dp 8080:8080 --name=wasm-example --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm32 michaelirwin244/wasm-exampleR7x28资讯网——每日最新资讯28at.com

由于一些标志可能不熟悉,让我们解释一下它们在做什么:R7x28资讯网——每日最新资讯28at.com

--runtime=io.containerd.wasmedge.v1– 这会通知 Docker 引擎我们要使用 Wasm containerd shim 而不是标准的 Linux 容器运行时
--platform=wasi/wasm32– 这指定了我们要使用的图像的架构。通过利用 Wasm 架构,我们不需要为不同的架构构建单独的图像。Wasm 运行时将完成将 Wasm 二进制文件转换为机器指令的最后一步。
镜像拉取后,runtime 会读取ENTRYPOINT镜像的 来定位并提取 Wasm 模块。然后将该模块加载到 Wasm 运行时、启动并配置网络。现在我们的机器上运行了一个 Wasm 应用程序!R7x28资讯网——每日最新资讯28at.com

这个特定的应用程序是一个简单的 Web 服务器,上面写着“Hello world!” 并将数据回显给我们。为了验证它是否正常工作,让我们首先查看日志。R7x28资讯网——每日最新资讯28at.com

docker logs wasm-exampleR7x28资讯网——每日最新资讯28at.com

Server is now running
我们可以通过打开http://localhost:8080或使用 curl 来获取“Hello world”消息。R7x28资讯网——每日最新资讯28at.com

curl localhost:8080
我们的响应会给我们一条 Hello world 消息:R7x28资讯网——每日最新资讯28at.com

Hello world from Rust running with Wasm! Send POST data to /echo to have it echoed back to you
要将数据发送到 echo 端点,我们可以使用 curl:R7x28资讯网——每日最新资讯28at.com

curl localhost:8080/echo -d '{"message":"Hi there"}' -H "Content-type: application/json"
我们将看到发回以在响应中使用的数据:R7x28资讯网——每日最新资讯28at.com

{"message":"Hi there"}
要删除应用程序,您可以像删除任何其他 Docker 服务一样删除它:R7x28资讯网——每日最新资讯28at.com

docker rm -f wasm-example
新的集成意味着您可以与 Linux 容器一起运行 Wasm 应用程序(甚至使用 Compose)。R7x28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2492-0.htmlDocker+Wasm 技术预览简介

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 使用 Docker 显示上下文数据

下一篇: Docker 技术支持下一代桌面即服务 (DaaS)

标签:
  • 热门焦点
  • 中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    2021年11月的时候,中兴先后发布了两款路由器产品,中兴AX5400和中兴AX5400 Pro,从产品命名上就不难看出这是隶属于同一系列的,但在外观设计上这两款产品可以说是完全没一点关系
  • 线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • 利用职权私自解除被封帐号 Meta开除20多名员工

    11月18日消息,据外媒援引知情人士表示,过去一年时间内,Facebook母公司Meta解雇或处罚了20多名员工以及合同工,指控这些人通过内部系统以不当方式重置用户帐号,其
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top