Mathworks Tim Choo
MATLAB Compiler™R2020b中的一个新特性允许您将独立的应用程序打包到Docker容器映像中。这使得您的应用程序可以在整个组织和云中轻松地分发和共享。Docker容器是完全自包含的,由操作系统库,MATLAB®运行时优化,以运行您的应用程序,和应用程序本身。
我想告诉您一个MATLAB编译器R2020B中的新特性——将独立应用程序打包为Docker容器映像的能力。现在,必须在Linux环境中执行打包的更改。然而,生成的Docker容器可以在Linux、Windows或Mac上运行。
请注意,基于UI的应用程序需要一个X-Windows Server,该服务器仅在Linux上自然支持。金宝app有些人已经成功使用Windows上的VCXSRV或Cygwin等选项,以及Mac OS上的XQuartz。但这些选项未在MathWorks上完全测试和合格。所以你的里程可能会有所不同。
这一切如何工作?嗯,MATLAB用户使用MATLAB编译器打包其独立应用程序,并针对Docker容器图像。现在,创建的Docker容器图像包含多个图层。第一层包含操作系统 - 在这种情况下,Linux库 - 随后是一个具有优化的MATLAB运行时的图层,只包含您在代码中使用的组件和工具框。
最后,还有一个应用程序可执行层。此主题容器映像将保存到PC中的本地存储库中。在某种程度上,这个容器可能会被传递给您的IT部门,由IT部门将其发布到企业注册中心。您组织中的用户可以浏览此注册表。在某个时间点,可能会决定使用Docker run命令运行它。
包装和将应用程序作为Docker容器分发许多好处。它是一个一致的环境,其中所有依赖项都安装在其中。它非常容易通过注册表分发,并且很容易被执行。让我们看看我们如何使用Matlab编译器创建Docker容器映像。
我们需要做的第一件事是确保已下载MATLAB运行时。我们可以使用编译器点运行时点下载命令。如果您已经下载了MATLAB运行时,则不必再次第二次执行此任务。
我们将使用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模型的应用程序,该模型是在金宝appSimulink编译器的帮助下生成的。如你所见,它就像一个典型的、独立的UI应用程序一样运行。如果你想了解更多关于如何使用Docker容器的信息,请访问MATLAB编译器文档中的帮助页面。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。