主要内容

MATLAB独立应用程序码头工人图片

金宝app支持平台:Linux®只有。

这个例子展示了如何打包MATLAB®独立应用程序到Docker中®的形象。

对于希望以包含所有依赖项的标准化格式分发应用程序或在编排器中运行批处理作业的开发人员来说,此选项是最佳选择。要创建提供HTTP/HTTPS端点的微服务Docker映像,请参见创建微服务Docker镜像(MATLAB编译器SDK)

先决条件

  1. 通过输入来验证您的Linux机器上已经安装了Docker码头工人在终点站。如果您没有安装Docker,您可以按照Docker网站上的说明安装和设置Docker。

    https://docs.docker.com/engine/install/

  2. 在系统终端输入以下命令测试Docker安装:

    Docker run hello-world
    如果您的Docker安装工作正常,您将看到以下消息:
    来自Docker的你好!此消息显示您的安装似乎正在正常工作。

  3. 验证MATLAB运行时安装程序在您的机器上可用。方法验证其是否存在compiler.runtime.download函数在MATLAB命令提示符。如果机器上有现有的安装程序,该函数将返回其位置。否则,它将下载MATLAB运行时与MATLAB版本和更新级别匹配的安装程序,从其中执行命令。

    如果你所使用的电脑没有连接到互联网,你需要下载MATLAB运行时安装程序从连接到互联网的计算机。下载MATLAB运行时安装程序时,您需要将安装程序转移到未连接到Internet的计算机上。您可以从MathWorks网站下载安装程序。

    //www.tatmou.com/下载188bet金宝搏products/compiler/matlab-runtime.html

中创建函数MATLAB

写一个MATLAB函数叫mymagic用文件名保存mymagic.m

函数Mymagic (x) y = magic(x);disp (y)

在MATLAB命令提示符下测试函数。

mymagic (5)
17 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

创建独立应用程序

使mymagic函数转换为独立应用程序compiler.build.standaloneApplication函数。

res = compiler.build.standaloneApplication(“mymagic.m”“TreatInputsAsNumeric”,真正的)
res =带有属性的结果:BuildType: 'standaloneApplication'文件:{3×1 cell}选项:[1×1 compiler.build.StandaloneApplicationOptions]

构建完成后,该函数创建一个名为mymagicstandaloneApplication在当前目录中存储独立应用程序。的结果对象res在MATLAB命令提示符处返回的包含有关构建的信息。

将独立应用程序打包到码头工人图像

创建DockerOptions对象

在创建Docker映像之前,先创建一个DockerOptions对象使用compiler.package.DockerOptions函数并传递结果对象res和图像名称mymagic-standalone-app作为输入参数。的compiler.package.DockerOptions函数可以让您自定义Docker映像打包。

opts = compiler.package.DockerOptions(res,“ImageName”“mymagic-standalone-app”
ExecuteDockerBuild: on ImageName: 'mymagic-standalone-app' DockerContext: './mymagic-standalone-appdocker'

创建码头工人图像

方法创建Docker映像compiler.package.docker函数并传递结果对象resDockerOptions对象选择作为输入参数。

compiler.package.docker (res,“选项”选择)
生成运行时图像清洗MATLAB运行时安装程序位置。可能需要几分钟……复制MATLAB运行时安装程序。可能需要几分钟... ... ... ...成功构建6501fa2bc057成功标记mymagic-standalone-app:latest DOCKER CONTEXT LOCATION: /home/user/ matlab /work/mymagic-standalone-appdocker SAMPLE DOCKER RUN命令:DOCKER RUN——rm -e "DISPLAY=:0" -v /tmp/. x11 -unix:/tmp/。X11-unix mymagic-standalone-app

打包完成后,该函数创建一个名为mymagic-standalone-appdocker在当前目录中。这个文件夹是Docker上下文,包含Dockerfile.的compiler.package.docker函数还返回Docker上下文的位置和示例Docker运行命令。您可以使用示例Docker run命令来测试映像是否正确执行。

在包装过程中,所需要的钻头MATLAB运行时被打包为父Docker映像,而独立应用程序被打包为子Docker映像。

测试码头工人图像

打开Linux终端,导航到Docker上下文文件夹。验证mymagic-standalone-appDocker映像列在Docker映像列表中。

码头工人的图片
仓库标签图像ID CREATED SIZE mymagic-standalone-app latest 6501fa2bc057 23 seconds ago 1.03GB matlabruntime/r2022 bc6eb5ba4ae69 24 hours ago 1.03GB

在核实mymagic-standalone-appDocker映像被列在Docker映像列表中,使用input参数执行示例run命令5

docker运行——rm -e "DISPLAY=:0" -v /tmp/. x11 -unix:/tmp/. x11 -unix:/tmp/。X11-unix mymagic-stand - alone-app
无协议指定out = 17 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

独立应用程序被打包,现在可以作为Docker映像运行。

请注意

运行生成图形或图形的应用程序时,请执行xhost使用+选项,然后再运行Docker映像。

xhost +
xhost程序控制对X显示服务器的访问,从而使绘图和图形能够显示。的+选项表示每个人都可以访问X显示服务器。如果你运行xhost使用+选项之前运行的应用程序不生成图形或图形的消息没有指定协议不再显示。

分享码头工人图像

您可以以各种方式共享Docker映像。

  • 将您的映像推到Docker的中心注册中心DockerHub,或推到您的私有注册中心。这是最常见的工作流。

  • 将映像保存为tar存档并与其他人共享。这个工作流适合于即时测试。

有关将映像推送到Docker的中央注册表或私有注册表的详细信息,请参阅Docker文档。

保存码头工人Image as Tar Archive

要将Docker映像保存为tar存档,请打开Linux终端,导航到Docker上下文文件夹,并键入以下内容。

Docker保存mymagic-standalone-app -o mymagic-standalone-app.tar

一个名为mymagic-standalone-app.tar在当前文件夹中创建。使用设置适当的权限修改文件权限在与其他用户共享tarball之前。

负载码头工人图片来自Tar Archive

在最终用户的机器上加载tarball中包含的图像,然后运行它。

Docker加载——输入mymagic-standalone-app.tar

验证图像是否已加载。

码头工人的图片

运行码头工人图像

xhost +docker运行——rm -e "DISPLAY=:0" -v /tmp/. x11 -unix:/tmp/. x11 -unix:/tmp/。X11-unix mymagic-stand - alone-app

另请参阅

|||

相关的话题