重磅:Docker Desktop正式集成WasmEdge。后者首登GitHubTrending

news2024/11/18 23:50:08

上周五,Docker Desktop 发布了 4.15 新版本。在这个版本中,Docker Desktop 正式集成了 WasmEdge 的 containerd shim, 并且 Docker + Wasm 也从 tech preview 进入到了 beta 阶段。这意味着,1000 万 Docker Desktop 的用户都安装了 WasmEdge,Docker 开发者可以使用已经熟悉的工具链来开发 WasmEdge 应用。在这里插入图片描述
此外,上周 WasmEdge 上了 GitHub Tending。感谢各位开发者对 WasmEdge 的喜爱!

在这里插入图片描述

检查 WasmEdge 的源码:https://github.com/WasmEdge/WasmEdge

我们提供了一个基于数据库的完整微服务应用示例,如果你想要快速体验 Docker + Wasm,从这个 repo 开始,是最方便的。

首先,git clone 到 microservice-rust-mysql 本地,并打开这个示例。

$ git clone https://github.com/second-state/microservice-rust-mysql.git
$ cd microservice-rust-mysql

接下来,打开 Docker Desktop,确认 Docker Desktop 正在运行。你可以从这里下载最新的 Docker Desktop。

下载链接:https://docs.docker.com/desktop/release-notes/

然后,使用 docker compose up 构建和运行这个微服务 demo。

docker compose up

输入这个命令行后,docker 会按照 Dokcerfile 构建镜像,这其中有两个 Linux 容器镜像,分别是 Nginx 和 MariaDB,一个是 Wasm 镜像,运行着基于 Rust 的微服务。

然后 docker 会按照 docker-compose.yml 来启动容器,运行构建好的镜像。

运行结束后,在浏览器打开 http://localhost:8090/,就可以看到这个微服务的 web UI。如 UI 所示,这个微服务将前端的订单信息通过基于 Wasm 的微服务添加到数据库中。在这里插入图片描述

我们再回到 Docker Desktop 就可以看到,总共有三个容器在运行,其中,有一个被标记了 Wasm32,意味着这是一个 wasm 容器。
在这里插入图片描述

有三个镜像,其中 Wasm 镜像只有 3MB,而基于 Linux 的 nignx 镜像有12 MB,MariaDB 则是100多 MB。 Wasm 的轻量级由此可见一斑。

在这里插入图片描述

Wasm 不仅仅是占用空间小,Wasm 还是高性能的,启动时间在毫秒以内,而 Linux 容器启动则需要几百毫秒。

值得一提的是,当前亚马逊正在北美举办的AWSre:Invent六万大会上,AWS 做了其最重要的软件产品发布:lambda serverless 函数的启动时间从6秒降到了600 毫秒。而基于 WasmEdge 的微服务与 serverless 函数的启动时间可以轻松在毫秒以内。正如 Docker 创始人所说,服务端的 WebAssembly 是云计算的未来。

本篇文章介绍了如何使用 Docker Desktop 和 Docker compose 肩并肩运行Linux容器和 Wasm 容器,下一篇文章,我们将介绍如何配置 Dockerfile 与 docker-compose.yml,从 0 开始,使用 Docker 工具链构建自己的 Wasm 应用。

相关阅读:

Docker 与 WasmEdge 合作,发布 WebAssembly 支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63000.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码安全与质量 | 在这个充满变数的时代,花小钱办大事

在这个充满变数的时代,许多企业都想要提升效率,但如何以同样的时间、人力成本创造出更大的价值?在研发领域,企业选择引入更好的工具来帮助交付高质量代码,比如Sonar,帮助团队充分利用时间,专注于…

Gradle 使用maven本地仓库 带来的思考

Gradle 使用maven本地仓库 带来的思考 本篇主要探究一下 在使用Gradle 的时候一般会配置 maven 的本地仓库的,那是不是Gradle 可以直接使用 maven本地仓库的jar呢 ? 下面来探究一下 思考 当我们在使用Gradle的时候 一配置一个 mavenLocal() 代表它会使用maven的本地仓库, 此时…

独立产品灵感周刊 DecoHack #040 - Google公布2022年度最佳应用榜单

本周刊记录有趣好玩的独立产品设计开发相关内容,每周发布,往期内容同样精彩,感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到,建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。💻 产品推荐 1. Sensei 这是一…

408真题-2021

死去的记忆正在攻击我: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n7aXxWnx-1670222893563)(https://waite1-1307752947.cos.ap-nanjing.myqcloud.com/img/202212051447504.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保…

网络编程之NIO 基础

一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 st…

数据结构与算法之Python实现——栈

在常用的数据结构中,有一批结构被称为容器——栈与队列。 本篇博客主要学习一下栈这种结构的特性,以及用python实现它的相关操作。 内容 顺序栈链栈栈的实际应用 在这之前,我们需要了解一下什么是栈,以及栈这种结构有什么用处&am…

HarmonyOS/OpenHarmony应用开发-DataAbility开发体验

场景介绍 基于Data模板的Ability(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。 Dat…

使用vuedraggable实现拖拽式操作实战

背景 先说下需求,为了提升开发效率和降低开发成本和技术难度,采用低代码方式,通过配置来生成代码,算是代码生成器的升级版解决方案。 对于前端页面,某个业务实体,如系统参数,常见的菜单对应一…

Memcached 未授权访问漏洞验证

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 该服务的端号为:11211 使用绿盟漏洞扫描系统发现某服务器存在Memcached 未授权访问漏洞,如下图所示。 验证方法一: 使用nmap 脚本script-…

ADSP-21489的开发详解:Norflash的编程和烧写

编者的话 Flash 编程与烧写,原本应该是开发的最后一步,当所有程序都做好了,在线编译运行正常,才会通过 Flash 编程,生成二进制的可执行文件 LDR,再通过 JTAG 仿真器将 LDR 文件烧写到 Flash 中&#xff0c…

初探 Vue3 新特性

在本讲中,我们只会概述性的来介绍一下 Vue3 中新增的一些主要内容,而这些主要知识点的详细的使用和功能以及作用,我们会在后面的课程里面逐渐的给大家去解锁。那么明确好了我们的学习目标之后呢? 我们来看一下 Vue3 之中到底新增…

Docker---Docker-compose 安装部署 zentao 禅道

Docker-compose 安装部署 zentao 禅道 目录Docker-compose 安装部署 zentao 禅道一、环境准备1.更换国内源2.拉取zentao的docker镜像3.关闭防火墙4.安装启动docker、docker-compose二、通过yml文件进行部署一、环境准备 1.更换国内源 CentOS7 Base源: wget -O /et…

技术男的春天:小姐姐求助暖男分析

时光荏苒,这个故事发生在4年前,那时候我头发可真厚,坐地铁也不用戴口罩。 小姐姐求助 友圈一位要做毕设的小姐姐在求助postman怎么用,我就帮她解答了一下。 我知道她并非计算机相关专业,所以很奇怪为什么要用postma…

web安全渗透

自己模拟的环境,要的私信 Web安全渗透 1、通过URL访问http://靶机IP/1,对该页面进行渗透测试,将完成后返回的结果内容作为flag值提交; 修改源码maxlength对应的数值,3+16=19输出的数值是两位数,然后修改完之输入

HTML+CSS+JS网页设计期末课程大作业—— 绿色化妆品HTML+CSS+JavaScript

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Windows搭建web站点:为站点配置二级子域名 2-2

在上一篇文章《Windows搭建Web站点:免费内网穿透发布至公网 1/2》中,我们成功通过cpolar将内网web站点发布到公网可访问,但免费使用cpolar所生成的域名是随机变化的(24小时后会变化),这只适合临时测试使用。…

Mysql SQL优化跟踪来看看是如何优化并决策使用哪个索引或者不适用索引

背景 使用索引字段进行筛选数据时,explain查询语句发现MySQL居然没有使用索引,产生疑问,因此决定调查清楚为什么会不用索引,而是走全表扫描 原因调查出的结果是当你要查询的数据量是连续又占整个表五分之一以上那就不会走索引了&a…

Java面试宝典.exe程序成功运行,经典 Java 万字笔记,查漏补缺,备战跳槽面试

现在 java 的面试真的卷到家了,面试前很有必要针对性的多刷题,大部分童鞋实战能力强,理论不行,面试前不做准备很吃亏。这里整理了很多常考面试题,希望对你有帮助。 耗时一个月,我把牛客网上最火的 Java 面…

ZMQ之共享键值缓存(克隆模式)

发布-订阅模式和无线电广播有些类似,在你收听之前发送的消息你将无从得知,收到消息的多少又会取决于你的接收能力。让人吃惊的是,对于那些追求完美的工程师来说,这种机器恰恰符合他们的需求,且广为传播,成为…

导出 txt文件 处理思路和实现流程

1.先看导出目标文件需要的字段都存不存在, 存在继续处理,不存在就添加。 例如,我这里需要在若依的用户表在添加一个银行账户数据, //银行卡号 private String accountNumber; public String getAccountNumber() { r…