主要内容

MATLAB将独立应用程序转换为码头工人图像

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

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

先决条件

  1. 通过键入以下命令,验证是否在Linux计算机上安装了Docker码头工人在控制台。如果您没有安装Docker,可以按照Docker网站上的说明安装和设置Docker。

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

  2. 验证MATLAB运行时安装程序在您的计算机上可用。可以通过执行compiler.runtime.download函数在MATLAB命令提示符下运行。如果机器上有现有安装程序,该函数将返回一条消息,说明MATLAB运行时安装程序存在并指定其位置。否则,它会下载MATLAB运行时与执行命令的MATLAB版本和更新级别相匹配的安装程序。

    如果您使用的计算机未连接到Internet,则需要下载MATLAB运行时从连接到Internet的计算机安装程序。下载MATLAB运行时安装程序,您需要将安装程序传输到未连接到Internet的计算机。您可以从MathWorks网站下载安装程序。

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

创建函数MATLAB

写一个MATLAB函数调用mymagic并用文件名保存它我的魔法

函数mymagic(x)y=magic(x);显示(y)

在MATLAB命令提示符下测试该功能。

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

创建独立的应用程序

使mymagic使用compiler.build.standalone应用程序作用

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

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

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

创建DockerOptions对象

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

opts=compiler.package.DockerOptions(res,“ImageName”,“mymagic独立应用程序”)
opts=DockerOptions,其属性为:EntryPoint:“mymagic”在ImageName:“mymagic单机版应用程序”DockerContext:“./mymagic单机版应用程序Docker”

创建码头工人图像

创建一个Docker映像compiler.package.docker函数并传递结果对象物件DockerOptions对象选择作为输入参数。

compiler.package.docker (res,“选项”选择)
生成运行时映像清理MATLAB运行时安装程序位置。可能需要几分钟…复制MATLAB运行时安装程序。可能需要几分钟………成功构建6501fa2bc057成功标记mymagic单机版应用程序:最新DOCKER上下文位置:/home/user/MATLAB/work/mymagic单机版appdocker示例DOCKERRUN命令:docker RUN--rm-e“DISPLAY=:0”-v/tmp/.X11 unix:/tmp/.X11 unix mymagic单机版应用程序

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

在包装过程中,必要的钻头MATLAB运行时被打包为父Docker镜像,独立的应用被打包为子Docker镜像。

测验码头工人图像

打开Linux控制台并导航到Docker上下文文件夹。验证mymagic-standalone-appDocker图像列在Docker图像列表中。

$码头工人的图片
存储库标记图像ID已创建大小mymagic独立应用最新6501fa2bc057 23秒前1.03GB matlabruntime/r2020b/update0/4000000000000000最新c6eb5ba4ae69 24小时前1.03GB

在验证mymagic-standalone-appDocker映像列在Docker映像列表中,请使用输入参数执行示例运行命令5.:

$docker运行--rm-e“DISPLAY=:0”-v/tmp/.X11 unix:/tmp/.X11 unix mymagic单机版应用程序5
没有指定协议=1724181515357141641320210211921311182529

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

笔记

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

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

分享码头工人图像

您可以通过各种方式共享Docker图像。

  • 将图像推送到Docker的中心注册表DockerHub或您的私人注册表。这是最常见的工作流。

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

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

保存码头工人映像为Tar归档文件

要将Docker映像保存为tar归档文件,请打开Linux控制台,导航到Docker上下文文件夹,并输入以下命令。

$Docker保存mymagic-standalone-app -o

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

负载码头工人来自Tar存档的图像

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

$docker load——输入mymagic-standalone-app.tar

验证图像已加载。

$码头工人的图片

码头工人图像

$xhost +$docker运行--rm-e“DISPLAY=:0”-v/tmp/.X11 unix:/tmp/.X11 unix mymagic单机版应用程序5

另见

|||