主要内容

创建Microservice码头工人图像

支持平台:Linux®、窗户®macOS

这个例子展示了如何创建一个微服务Docker®的形象。微服务形象创建MATLAB®编译器SDK™提供一个HTTP/HTTPS端点来访问MATLAB代码。

将MATLAB函数打包到可部署的归档文件中,然后创建包含归档文件和最小值的Docker映像MATLAB运行时包中。然后可以在Docker中运行映像,并使用任何具有HTTP库的编程语言调用服务,包括MATLAB Production Server™客户端api。

对于想要合并MATLAB算法或Simulink的开发人员来说,这个选项是最好的®模拟大型应用程序中的服务,或提供同步请求-响应后端API服务。要创建包含独立应用程序的Docker映像,请参见将MATLAB独立应用程序打包到Docker映像中

先决条件

创建MATLAB函数

在MATLAB中,检查您想要打包的MATLAB程序。

对于本例,编写一个名为mymagic.m使用以下代码。

函数Y = mymagic(x) Y = magic(x);

在MATLAB命令提示符下,输入mymagic (5)

输出是一个5 × 5的神奇方阵。

Ans = 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.productionServerArchive函数。

控件中指定其他选项compiler.build使用名称-值参数命令。详情请参见compiler.build.productionServerArchive

mpsResults = compiler.build.productionServerArchive(“mymagic.m”...“ArchiveName”“magicarchive”“详细”“上”
mpsResults =带有属性的结果:BuildType: 'productionServerArchive' Files: {'/home/mluser/Work/magicarchiveproductionServerArchive/magicarchive. properties:ctf'} IncludedSupportPackages: {} Options: [1×1 compiler.build.ProductionServerArchiveOptions]

compiler.build.Results对象mpsResults包含有关生成类型、生成文件、包含的支持包和生成选项的信息。

构建完成后,该函数创建一个名为magicarchiveproductionServerArchive在当前目录中存储可部署归档文件。

将Archive包到Microservice中码头工人图像

方法构建微服务Docker映像mpsResults对象创建的。

控件中指定其他选项compiler.build使用名称-值参数命令。详情请参见compiler.package.microserviceDockerImage

compiler.package.microserviceDockerImage (mpsResults“ImageName”“micro-magic”

该函数在名为micro-magicmicroserviceDockerImage在您当前的工作目录中:

  • applicationFilesForMATLABCompiler / magicarchive.ctf—可部署归档文件。

  • Dockerfile-指定Docker运行时选项的Docker文件。

  • GettingStarted.txt—包含部署信息的文本文件。

测试码头工人图像

请注意

如果Docker在WSL2会话中运行,请使用WSL2运行以下命令。

  1. 在系统命令窗口中,验证您的micro-magicimage在您的Docker映像列表中。

    码头工人的图片
    库标签图像ID CREATED SIZE micro-magic latest 4401fa2bc057 23 seconds ago 1.42GB matlabruntime/r2022 b1.42GB
  2. 运行micro-magicDocker中的微服务映像。

    运行——rm -p 9900:9910 micro-magic

    端口9910是Docker容器中微服务公开的默认端口。可以将它映射到主机上的任何可用端口。对于本例,它映射到端口9900。

    您可以在Docker命令中指定其他选项。有关选项的完整列表,请参见微服务命令参数

  3. 一旦微服务容器在Docker中运行,你可以通过在浏览器中打开以下URL查看服务的状态:

    http://主机名: 9900 / api /健康

    请注意

    使用本地主机如果Docker运行在同一台机器上,则作为主机名。

    如果该服务已准备好接收请求,您将看到以下消息:

    “状态:好吧”
  4. 测试正在运行的服务。对于Linux终端,请使用旋度命令发送带有输入参数的JSON查询4通过端口9900连接到服务。有关构造JSON请求的更多信息,请参见MATLAB数据类型的JSON表示(MATLAB生产服务器)

    curl -v -H Content-Type:application/json -d '{"nargout":1,"rhs":[4]}' "http://主机名: 9900 / magicarchive / mymagic”

    输出为:

    [{{“韩”:“mwdata”:[16、5、9、4、2、11、7日14日3日,10日,6日,15日,13日,8日,12日,1],“mwsize”:(4,4)“mwtype”:“替身”}]}

    请注意

    使用旋度在Windows上,使用以下语法:

    curl - v - h - type: application / json - d”{\“nargout \”:1,\“rhs \”:[4]}“http://”主机名: 9900 / magicarchive / mymagic”

  5. 要停止服务,使用以下命令显示容器id。

    码头工人ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES df7710d69bf0 micromagic "/opt/matlabruntime/…" 6分钟前Up 6分钟0.0.0.0:9900->9910/tcp epic_herschel . Up 6分钟

    使用指定的容器id停止服务。

    Docker停止df7710d69bf0

分享码头工人图像

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

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

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

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

保存码头工人Tar档案图像

要将Docker映像保存为tar归档文件,请打开一个系统命令窗口,导航到Docker上下文文件夹,并键入以下命令。

Docker保存micro-magic -o micro-magic.tar

这个命令创建一个名为micro-magic.tar在当前文件夹中。设置适当的权限(例如,using修改文件权限),然后与其他用户共享tarball。

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

在最终用户机器上加载tarball中包含的映像。

Docker加载——输入micro-magic.tar

验证图像是否已加载。

码头工人的图片

运行码头工人图像

运行——rm -p 9900:9910 micro-magic

另请参阅

|

相关的话题

Baidu
map