在离线环境中将 MATLAB 和附加组件安装在容器中
在离线环境中构建并自定义用于 MATLAB®、工具箱和支持包的 Docker® 容器镜像。仅当您需要在物理隔离环境中安装 MATLAB、工具箱和支持包时,才使用此解决方案。
否则,若需在 Linux® 环境中创建包含自定义 MATLAB 安装的 Docker 容器镜像,请参阅创建自定义 MATLAB 容器。
或者,若需直接从 Docker Hub 拉取现成的 MATLAB 容器镜像,请参阅Docker Hub 上的 MATLAB 容器。
要求
一台安装了 Docker(版本≥20.10)和 Git™ 的主机。
通过网络许可证管理器管理的 MATLAB 许可证,需满足以下条件:
关联到一个 MathWorks 帐户。
已配置为在云端使用。您可以通过查看您的 MathWorks 帐户来识别您的许可证类型和管理员。管理员可咨询管理网络许可证。
要在容器中许可 MATLAB,必须提供网络许可证管理器的端口号和 DNS 地址。您可以在构建容器镜像时或启动容器时添加此信息。
在构建容器镜像时设置此信息,请向
docker build命令添加以下形式的选项:--build-arg LICENSE_SERVER=27000@MyLicenseServer
或者,您可以在构建容器镜像时使用许可证文件来指定许可证管理器的路径。若需在容器镜像中使用网络命名许可证类型,必须在执行
docker build命令前,先在 Dockerfile 中添加用户名。构建容器镜像后,使用与许可证关联的特定用户名运行容器。有关详细信息,请参阅在容器中使用网络命名许可证。要设置此信息,请在运行容器镜像时向
docker run命令添加以下形式的选项:-e MLM_LICENSE_FILE=27000@MyLicenseServer
在容器中使用网络命名许可证
若您使用的是与容器关联的网络命名许可证,则必须使用与该许可证关联的特定用户名运行容器。容器镜像构建完成后无法向容器中添加用户,因此请务必在构建容器镜像前,将可能需要使用的用户名构建到 Dockerfile 中。
要为容器定义用户,请在 Dockerfile 中添加用户,然后以指定用户身份运行容器。以下 Dockerfile 命令将指定用户添加到容器中:
RUN useradd -ms /bin/bash <USERNAME>
接下来这个 Dockerfile 命令将容器设置为以指定用户身份运行:
USER <USERNAME>
-u 运行时标志将覆盖容器内置的任何 USER 命令。您可以使用此功能在运行时更改容器的用户。有关更多信息,请参阅 Docker 文档。
构建和自定义容器镜像
要在离线环境中构建和自定义包含 MATLAB 及其工具箱的 Docker 容器镜像,请遵循此 GitHub® 存储库中的说明:
该解决方案使用两个 Docker 镜像。第一张图片(存档图片)包含 MATLAB 软件包管理器(mpm)所需的安装文件,用于从源代码安装。第二张图片(产品图片)使用存档图像来获取您想要安装的 MATLAB、工具箱和支持包的安装文件。