主要内容

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

webapps-containers

设置环境以在 MATLAB 系统上的 Docker 容器中运行 Linux Web App

自 R2022b 起

要在 Docker® 容器中运行 MATLAB® Web App,您必须使用 MATLAB Runtime R2022b 或更高版本。不支持 MATLAB Runtime 的早期版本。但是,如果您不打算在容器中运行 Web App,则可以继续使用早于 R2019b 版本的 MATLAB Runtime

使用 R2022b 之前的 MATLAB Compiler™ 版本构建的任何 Web App 都无法在容器化环境中运行。为了解决此限制,请使用 MATLAB Compiler 版本 R2022b 或更新版本重新打包 Web App。

说明

webapps-containers [on | off] 设置或拆除在容器中运行 Docker Web App 所需的 MATLAB 环境。执行此命令后,必须使用 webapps-restart 重新启动服务器才能使更改生效。

执行 webapps-containers on

  • 创建一个名为 mw-webapps-worker 的基本 Docker 映像,其 TAG 名称为 R2025a,由 Ubuntu® Linux® 操作系统、依赖库和基本映像的自定义项组成。

  • 为 Docker 容器创建一个网络。

  • 通过将 use_for_workers 键设置为 1,可以在容器中运行 Web App。

  • 配置防火墙,以便 Web App 只能在为容器创建的网络中运行,而不能访问互联网。

执行 webapps-containers off 会破坏为运行 Web App 而创建的 Docker 环境。分配给配置键的值被保留。

示例

webapps-containers status 返回 Docker 环境的设置状态。它指示容器使用是 enabled 还是 disabled,以及 Docker 基础镜像是 present 还是 missing

webapps-containers config get 返回整个容器配置。

示例

webapps-containers config get keyname 返回与键 keyname 关联的容器配置值。

webapps-containers config set keyname val 将值 val 分配给容器配置键 keyname。执行此命令后,必须使用 webapps-restart 重新启动服务器才能使更改生效。

示例

webapps-containers net options 允许您通过调整 options 来修改容器网络的网络设置。

传递给 net 参数的选项在服务器重启时不会保留。为了在重启后保留选项,请将它们放入 /local/MathWorks/webapps/R2025a/config/webapps_private/containers-firewall-init.sh 文件中。

示例

示例

全部折叠

准备您的计算机以在容器中运行 MATLAB Web App。

sudo ./webapps-containers on
Installing Docker support for MATLAB Web App Server...
Building base image, this may take a while...
Copying default containers-firewall-init.sh
Enabling firewall service ...
Applying permanent firewall settings ...
Containers support was successfully enabled. 
Run "sudo /usr/local/MATLAB/MATLAB_Web_App_Server/R2025a/script/webapps-restart" to apply.

检查状态。

sudo ./webapps-containers status
Container support: enabled
Base image: present

重新启动服务器以应用更改。

sudo ./webapps-restart
Restarting server...

The server has started successfully.
   Homepage: http://hostname:9988/webapps/home/
Apps Folder: /local/MathWorks/webapps/R2025a/apps
Logs Folder: /local/MathWorks/webapps/R2025a/logs

获取所有键的容器配置。

sudo ./webapps-containers config get
use_for_workers: 1
memory: 2g
volumes: 
cpus: 
env:

要检索特定键的配置,请指定 keyname

如果您不想在容器化环境中运行 Web App,但想要保留用于实例化容器的 Docker 映像,请执行:

sudo ./webapps-containers config set use_for_workers 0
Setting "use_for_workers" successfully changed. 
Run "sudo /usr/local/MATLAB/MATLAB_Web_App_Server/R2025a/script/webapps-restart" to apply.

检查状态。

sudo ./webapps-containers status
Container support: disabled
Base image: present

重新启动服务器以应用更改。

sudo ./webapps-restart
Restarting server...

The server has started successfully.
   Homepage: http://hostname:9988/webapps/home/
Apps Folder: /local/MathWorks/webapps/R2025a/apps
Logs Folder: /local/MathWorks/webapps/R2025a/logs
sudo ./webapps-containers config set subnet 192.168.24.0/24
sudo ./webapps-containers net firewall on
Rules were successfully added.

检查防火墙规则。

sudo ./webapps-containers net list
Rules for webapps container network 192.168.98.0/24:
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 RETURN     all  --  any    any     192.168.98.0/24      anywhere             state RELATED,ESTABLISHED
2        0     0 REJECT     all  --  any    any     192.168.98.0/24      anywhere             reject-with icmp-port-unreachable
sudo ./webapps-containers net dns on
To make firewall changes that survive a reboot, put this command into a 
"/local/MathWorks/webapps/R2025a/config/webapps_private/containers-firewall-init.sh" file.

检查防火墙规则。

sudo ./webapps-containers net list
Rules for webapps container network 192.168.98.0/24:
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     192.168.98.0/24      anywhere             tcp dpt:domain ctstate NEW,ESTABLISHED
2        0     0 ACCEPT     udp  --  any    any     192.168.98.0/24      anywhere             udp dpt:domain ctstate NEW,ESTABLISHED
3        0     0 RETURN     all  --  any    any     192.168.98.0/24      anywhere             state RELATED,ESTABLISHED
4        0     0 REJECT     all  --  any    any     192.168.98.0/24      anywhere             reject-with icmp-port-unreachable
sudo ./webapps-containers net dns add www.google.com 443
Enabling traffic to www.google.com:443
To make firewall changes that survive a reboot, put this command into a 
"/local/MathWorks/webapps/R2025a/config/webapps_private/containers-firewall-init.sh" file.

检查防火墙规则。

sudo ./webapps-containers net list
Rules for webapps container network 192.168.98.0/24:
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     192.168.98.0/24      lga25s78-in-f4.1e100.net  tcp dpt:https
2        0     0 ACCEPT     tcp  --  any    any     192.168.98.0/24      anywhere                  tcp dpt:domain ctstate NEW,ESTABLISHED
3        0     0 ACCEPT     udp  --  any    any     192.168.98.0/24      anywhere                  udp dpt:domain ctstate NEW,ESTABLISHED
4        0     0 RETURN     all  --  any    any     192.168.98.0/24      anywhere                  state RELATED,ESTABLISHED
5        0     0 REJECT     all  --  any    any     192.168.98.0/24      anywhere                  reject-with icmp-port-unreachable

通过指定规则编号来删除防火墙规则。

sudo ./webapps-containers net remove 1
Removing rule 1

检查防火墙规则。

sudo ./webapps-containers net list
Rules for webapps container network 192.168.98.0/24:
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     192.168.98.0/24      anywhere             tcp dpt:domain ctstate NEW,ESTABLISHED
2        0     0 ACCEPT     udp  --  any    any     192.168.98.0/24      anywhere             udp dpt:domain ctstate NEW,ESTABLISHED
3        0     0 RETURN     all  --  any    any     192.168.98.0/24      anywhere             state RELATED,ESTABLISHED
4        0     0 REJECT     all  --  any    any     192.168.98.0/24      anywhere             reject-with icmp-port-unreachable

输入参数

全部折叠

keyname描述

use_for_workers

指示 MATLAB Web App 是否可以在容器中运行。

memory

指定容器可使用的最大内存 (RAM) 量。

volumes

指定要挂载为 Docker 卷的目录。

cpus

指定容器可以使用多少可用 CPU 资源。

env

指定容器内要设置的环境变量。

subnet (自 R2023a 起)

通过使用 CIDR 表示法指定 IP 地址范围,在 Docker 环境中创建容器将在其中运行的子网。如果在创建子网时未指定 CIDR 范围,则使用默认范围 192.168.98.0/24。指定范围可防止与现有的 Docker 子网发生冲突。

指定与 keyname 值相对应的值。将值括在双引号中 (" ")。

keynameval示例

use_for_workers

根据容器是否被禁用或启用分别指定 01

当执行 webapps-containers on 时,软件默认返回值 1

use_for_workers "0"

memory

指定一个正整数,后跟后缀 bkmg,以表示字节、千字节、兆字节或千兆字节。

当执行 webapps-containers on 时,软件默认返回一个空值,表示不受内存限制。

memory "2g"

volumes

指定两个或三个字段,以冒号分隔(:)。字段必须按照正确的顺序排列。使用分号 (;) 分隔多个卷。

  • 第一个字段是卷的名称。

  • 第二个字段是文件或目录在容器中挂载的路径。

  • 第三个字段是可选的,是一个以逗号分隔的选项列表,例如 readonly

有关详细信息,请参阅 https://docs.docker.com/storage/volumes/

当执行 webapps-containers on 时,软件默认返回一个空值。

  • volumes "/var/lib/cassandra/data:/data:readonly"

  • volumes "/var/lib/cassandra/data:/tmp/data:readonly;/usr/share/nginx/html:/tmp/html"

cpus

指定任何大于 0 的实数。如果一台计算机有两个 CPU,并且您将值设置为 "1.5",则最多会为容器分配一个半 CPU。

有关详细信息,请参阅 https://docs.docker.com/config/containers/resource_constraints/

当执行 webapps-containers on 时,软件默认返回一个空值,表示不限制 CPU 资源。该值设置为 0.000 是等效的。

cpus "1.5"

env

将键值对指定为 <key>=<value>。使用分号 (;) 分隔多个键值对。

当执行 webapps-containers on 时,软件默认返回一个空值。

env "MY_VAR1=/hello;MY_VAR2=/world"

subnet (自 R2023a 起)

通过使用 CIDR 表示法指定 IP 地址范围,在 Docker 环境中创建容器将在其中运行的子网。如果在创建子网时未指定 CIDR 范围,则使用默认范围 192.168.98.0/24。指定范围可防止与现有的 Docker 子网发生冲突。

subnet 192.168.24.0/24

小心

服务器重启时,下面列出的选项不会保留。为了在重启后保留选项,请将它们放入 /local/MathWorks/webapps/R2025a/config/webapps_private/containers-firewall-init.sh 文件中。

自定义容器网络防火墙设置的选项,指定为以下之一:

  • add

    hostport 添加到防火墙例外列表。

    sudo ./webapps-containers net add host port

    host 参数可以是网络名称、主机名、网络 IP 地址或带掩码的网络 IP 地址。

    示例

    将 IP 地址添加到防火墙例外列表。

    sudo ./webapps-containers net add 123.45.67.111 443

    将域名添加到防火墙例外列表中。

    sudo ./webapps-containers net dns on
    sudo ./webapps-containers net add www.google.com 443

  • dns

    切换域名系统 (DNS) 解析 onoff

    sudo ./webapps-containers net dns on
    sudo ./webapps-containers net dns off

    示例

    启用 DNS 解析。

    sudo ./webapps-containers net dns on
    To make firewall changes that survive a reboot, put this command into a 
    "/local/MathWorks/webapps/R2025a/config/webapps_private/containers-firewall-init.sh" file.
    

    禁用 DNS 解析。

    sudo ./webapps-containers net dns off
    Rules were successfully removed.
    

  • firewall

    切换容器网络防火墙 onoff。容器网络的防火墙基于 Linux iptables。有关详细信息,请参阅 https://linux.die.net/man/8/iptables

    sudo ./webapps-containers net firewall on
    sudo ./webapps-containers net firewall off

    示例

    启用防火墙。

    webapps-containers net firewall on
    Rules were successfully added.
    

    禁用防火墙。

    webapps-containers net firewall off
    
    Rules were successfully removed.
    

  • list

    列出容器网络防火墙规则。

    sudo ./webapps-containers net list

    示例

    列出规则。

    sudo ./webapps-containers net list
    Rules for webapps container network 192.168.98.0/24:
    num   pkts bytes target     prot opt in     out     source               destination         
    1        0     0 ACCEPT     tcp  --  any    any     192.168.98.0/24      anywhere             tcp dpt:domain ctstate NEW,ESTABLISHED
    2        0     0 ACCEPT     udp  --  any    any     192.168.98.0/24      anywhere             udp dpt:domain ctstate NEW,ESTABLISHED
    3        0     0 RETURN     all  --  any    any     192.168.98.0/24      anywhere             state RELATED,ESTABLISHED
    4        0     0 REJECT     all  --  any    any     192.168.98.0/24      anywhere             reject-with icmp-port-unreachable
    
    当防火墙和 DNS 启用时,会显示此特定规则列表。

  • remove

    • 删除 hostport

      webapps-containers net remove host port

    • 从防火墙规则列表中删除规则 num

      webapps-containers net remove num

      示例

      从防火墙规则列表中删除规则 1

      webapps-containers net remove 2 
      Removing rule 2
      

详细信息

全部折叠

版本历史记录

在 R2022b 中推出