蒂姆•Choo MathWorks
MATLAB Compiler™R2020b中的一个新特性允许您将独立的应用程序打包到Docker容器映像中。这使得您的应用程序可以在整个组织和云中轻松地分发和共享。Docker容器是完全自包含的,由操作系统库,MATLAB®运行时优化,以运行您的应用程序,和应用程序本身。
我想告诉您一个MATLAB编译器R2020B中的新特性——将独立应用程序打包为Docker容器映像的能力。现在,必须在Linux环境中执行打包的更改。然而,生成的Docker容器可以在Linux、Windows或Mac上运行。
注意,基于UI的应用程序需要X-windows服务器,而X-windows服务器只在Linux上本地支持。万博1manbetx有些人已经成功地在Windows上使用VcXsrv或Cygwin,以及在Mac OS上使用XQuartz。但MathWorks并没有对这些选项进行全面测试和认证。所以你的里程可能会有所不同。
这一切是如何运作的?嗯,MATLAB用户使用MATLAB编译器打包他们的独立应用程序,并以Docker容器映像为目标。现在创建的Docker容器图像包含了几个层。第一层包含操作系统(在本例中是Linux库),其次是具有优化的MATLAB Runtime的层,该层仅包含您在代码中使用的组件和工具箱。
最后,还有一个应用程序可执行层。此主题容器映像将保存到PC中的本地存储库中。在某种程度上,这个容器可能会被传递给您的IT部门,由IT部门将其发布到企业注册中心。您组织中的用户可以浏览此注册表。在某个时间点,可能会决定使用Docker run命令运行它。
将应用程序打包并分发为Docker容器有很多好处。它是一个一致的环境,所有依赖项都预先安装在其中。它很容易通过注册表分发,也很容易执行。让我们看看如何使用MATLAB编译器创建一个Docker容器图像。
我们需要做的第一件事是确保MATLAB运行时已经下载。我们可以使用编译器。runtime。download命令。如果您已经下载了MATLAB Runtime,您将不必再次执行此任务。
我们将使用magic square函数生成一个Docker容器映像。这是一个非常简单的函数,它接受一个数字输入并返回一个幻方。我们需要做的第一步是将其编译成一个独立的应用程序。我们使用编译器点bill点独立应用程序命令来实现这一点,传递M文件的名称并告诉它将输入作为数字处理。
这个独立的应用程序被保存到魔术应用程序变量中。一旦我们有了这个,我们就可以调用编译器。package。Docker命令,并传入我们新生成的独立应用程序的名称,以及告诉它命名Docker图像魔术破折号帽子。请注意,Docker映像名称必须全部小写。
现在,如果您是第一次这样做,这个过程可能需要更长的时间,因为打包过程需要创建底层操作系统库层以及底层运行时层。我之前已经生成了这些,所以我的过程要快得多。一旦该进程完成运行,您将获得执行应用程序所需的Docker run命令。
把这个复制到剪贴板里。注意,如果你想运行MATLAB应用程序设计器UI应用程序,你必须运行x host +。让我们切换到终端窗口来运行新生成的magic square容器。我们将首先输入x host plus命令,然后粘贴从MATLAB编译器复制的Docker run命令。
不要忘记提供输入参数——在本例中是5。Docker容器运行并输出5乘5的幻方。现在,你可能想知道你是否能运行MATLAB App Designer UI应用程序。答案是肯定的。我将运行之前用UI应用程序打包的容器。
这是一个运行质量弹簧阻尼器的Simulink模型的应用程序,该模型是在万博1manbetxSimulink编译器的帮助下生成的。如你所见,它就像一个典型的、独立的UI应用程序一样运行。如果你想了解更多关于如何使用Docker容器的信息,请访问MATLAB编译器文档中的帮助页面。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。