主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用自定义底图创建 Docker 图像

支持的平台:Linux®

此示例演示了如何使用自定义基础层创建 Docker® 映像。创建自定义基础层后,您可以将自己偏好的 Linux 版本或其他操作系统作为基础,从而运行命令或安装其他依赖项。

Docker 容器镜像由多个层组成。在此示例中,您将创建三个层,每个层都包含一组基于前一层构建的文件系统更改。

  1. 自定义基础层(您选择的操作系统)

  2. 次级层 (MATLAB® Runtime)

  3. 应用层(您的独立应用程序)

前提条件

注意

有些可部署存档(例如 Simulink® Compiler™ 工件)并非跨平台兼容,必须在 Linux 上构建才能与 Docker 一起使用。有关详细信息,请参阅MATLAB Compiler 的限制 (MATLAB Compiler SDK)

使用 compiler.build.standaloneApplication 创建独立应用程序

在 MATLAB 中,找到您想要作为微服务部署的 MATLAB 函数。在此示例中,请使用以下代码创建函数 mirror.m

function out = mirror(in)
out = in;

使用 compiler.build.standaloneApplication 创建独立应用程序。

buildResults = compiler.build.standaloneApplication("mirror.m","Verbose",true);

使用 Docker 构建自定义基础层

您可以使用 Dockerfile 自定义基础镜像。

在此示例中,请创建一个名为 Dockerfile.customdeps 的新文件。该文件应指定 Linux 发行版,并安装 MATLAB Runtime 所需的所有依赖项。

您可以在 Dockerfile 中添加命令,以自定义基础镜像的行为。例如,在 apt 配置文件中添加代理信息。

RUN echo 'Acquire::http::Proxy "http://yourproxyaddress:proxyport";' >> /etc/apt/apt.conf

您还可以安装其他依赖项,以满足部署的各项要求。

  Example Dockerfile.customdeps

这些软件包来自 https://github.com/mathworks-ref-arch/container-images/tree/main/matlab-runtime-deps/,适用于 Ubuntu 24.04。如果您的内部操作系统镜像源自其他任何 Linux 发行版,则必须重新创建该操作系统的依赖项列表。

在 MATLAB 命令行窗口中,使用 Docker 和您创建的 Dockerfile 构建自定义基础镜像。

depsImageName = "mycompanybase:r2024b";
system("docker build -f Dockerfile.customdeps -t " + depsImageName + " .");

注意

如果您使用的是 WSL,请输入 wsl docker build

使用 MATLAB Runtime 创建二级图层

创建一个名为 MATLAB Runtime Docker 的映像层,该层使用您创建的自定义基础层。使用名称-值参量指定基础图层图像和 MATLAB Runtime 图像名称。

runtimeImageName = "custom-matlabruntime:r2024b";
compiler.runtime.createDockerImage(buildResults, ...
    "BaseImage",depsImageName, ...
    "ImageName",runtimeImageName)

通过打包独立应用程序来创建应用层

为独立应用程序创建一个 Docker 镜像。请指定您创建的 MATLAB Runtime Docker 镜像的名称,作为 compiler.package.docker 函数的输入。

compiler.package.docker(buildResults, ...
    "ImageName","mirror-micro","RuntimeImage",runtimeImageName);

使用 Docker 部署镜像。有关将您的镜像推送到 Docker Hub 或您的私有注册表的详细信息,请查阅 Docker 文档。

另请参阅

| (MATLAB Compiler SDK) |

主题