此儲存庫向您展示如何使用 MATLAB 套件管理器 ( mpm ) 為 MATLAB® 及其工具箱建置和自訂 Docker® 容器。
您可以使用此容器映像作為可擴展且可重現的方法來部署和測試 MATLAB 程式碼。
如果您想要一種輕量級且簡單的方法來建立 MATLAB 容器映像,請使用此頂級儲存庫中的 Dockerfile。您也可以從此處下載基於此 Dockerfile 的預先建置映像。
有關替代資源,請參閱包含以下 Dockerfile 的替代資料夾:
mpm
在容器中安裝 MATLAB。這允許您安裝 mpm 目前不支援的工具箱。如果您喜歡使用 MATLAB 安裝程式工作流程而不是mpm
,請使用此 Dockerfile 。mathworks/matlab
容器映像上安裝額外的工具箱,請使用此 Dockerfile。此 Dockerfile 包含 Docker Hub 上 MATLAB 映像的功能,可讓您透過瀏覽器、批次模式或互動式命令提示字元存取 Docker 化的 MATLAB。如需更多 Docker 相關資源,請參閱更多 MATLAB Docker 資源。
透過直接從 GitHub® 下載此儲存庫,或克隆此儲存庫然後導航到相應的資料夾來存取此 Dockerfile。
git clone https://github.com/mathworks-ref-arch/matlab-dockerfile.git
cd matlab-dockerfile
使用您選擇的名稱和標籤建立容器。
docker build -t matlab:R2024b .
運行容器。透過執行範例 MATLAB 命令(例如 ver.)來測試容器。
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Dockerfile 預設為 MATLAB R2024b 建置容器。
範例指令ver
顯示 MATLAB 和其他已安裝產品的版本號。欲了解更多信息,請參閱版本。有關運行容器的更多信息,請參閱運行容器部分。
筆記
在
docker run
指令中使用--init
標誌可確保在發出docker stop
或docker kill
指令時容器正常停止。有關更多信息,請參閱以下連結:
- Docker 運行參考頁面。
- 關於 init 用法的部落格文章。
預設情況下,Dockerfile 會在/opt/matlab/${MATLAB_RELEASE}
資料夾中安裝最新可用 MATLAB 版本的 MATLAB,而無需任何其他工具箱或產品。
使用以下選項來自訂您的建置。
Dockerfile 支援以下 Docker 建置時變數:
參數名稱 | 預設值 | 描述 |
---|---|---|
MATLAB_RELEASE | R2024b | 要安裝的 MATLAB 版本,例如R2023b 。 |
MATLAB_產品_列表 | MATLAB | 若要安裝為空格分隔清單的產品。有關更多信息,請參閱 MPM.md。例如: MATLAB Simulink Deep_Learning_Toolbox Fixed-Point_Designer |
MATLAB_INSTALL_LOCATION | /opt/matlab/R2024b | MATLAB 的安裝路徑。 |
LICENSE_SERVER | 未設定 | 執行 Network License Manager 的電腦的連接埠和主機名,使用port@hostname 語法。例如: 27000@MyServerName |
將這些參數與docker build
命令一起使用來自訂您的映像。或者,您可以直接在 Dockerfile 中變更這些參數的預設值。
例如,要建立 MATLAB R2019b 的映像,請使用此命令。
docker build --build-arg MATLAB_RELEASE=R2019b -t matlab:R2019b .
例如,若要使用 MATLAB 和 Simulink® 建立映像,請使用此命令。
docker build --build-arg MATLAB_PRODUCT_LIST= ' MATLAB Simulink ' -t matlab:R2024b .
例如,若要使用安裝在 /opt/matlab 的 MATLAB 建置映像,請使用此指令。
docker build --build-arg MATLAB_INSTALL_LOCATION= ' /opt/matlab ' -t matlab:R2024b .
在docker build
命令中包含許可證伺服器資訊意味著您在執行容器時不必傳遞它。
# Build container with the License Server.
docker build --build-arg LICENSE_SERVER=27000@MyServerName -t matlab:R2024b .
# Run the container, without needing to pass license information.
docker run --init --rm matlab:R2024b -batch ver
此容器需要網路許可證管理器來授權和執行 MATLAB。您將需要 Network License Manager 的連接埠和主機名,或network.lic
檔案。
步驟 1 :聯絡您的系統管理員,他可以提供以下資訊之一:
伺服器的位址及其運作的連接埠。例如: [email protected]
包含以下行的network.lic
檔案:
# Sample network.lic
SERVER MyServerName.example.com < optional-mac-address > 27000
USE_SERVER
license.dat
文件。開啟license.dat
文件,找到SERVER
行,然後提取port@hostname
,或透過複製SERVER
行並在其下方新增USE_SERVER
行來建立network.lic
文件。
# snippet from sample license.dat
SERVER MyServerName.example.com < mac-address > 27000
步驟 2 :透過docker build
或docker run
指令使用port@hostname
或network.lic
檔。
使用docker build
指令,可以:
指定LICENSE_SERVER
建置參數。
# Example
docker build -t matlab:R2024b --build-arg LICENSE_SERVER=27000@MyServerName .
使用network.lic
檔:
network.lic
檔案放在與 Dockerfile 相同的資料夾中。COPY network.lic /opt/matlab/licenses/
行的註解。LICENSE_SERVER
build-arg 的 docker build 指令: # Example
docker build -t matlab:R2024b .
透過docker run
命令,使用MLM_LICENSE_FILE
環境變數。例如:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
如果您在建立映像時未提供許可證伺服器信息,請在運行容器時提供。使用-e
標誌設定環境變數MLM_LICENSE_FILE
,網路授權管理器的位置採用格式port@hostname
。
# Start MATLAB, print version information, and exit:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
如果您在建置映像時提供了許可證伺服器信息,則可以在不指定MLM_LICENSE_FILE
的情況下運行容器,如下例所示。
若要啟動容器並在互動式命令提示字元中執行 MATLAB,請執行:
docker run --init -it --rm matlab:R2024b
若要啟動容器,請執行 MATLAB 命令,然後退出,執行:
# Container runs the command RAND in MATLAB and exits.
docker run --init --rm matlab:R2024b -batch rand
若要覆寫容器的預設行為並使用任何參數集(例如-logfile
執行 MATLAB,請執行:
docker run --init -it --rm matlab:R2024b -logfile " logfilename.log "
要了解更多信息,請參閱文件:常用啟動選項。
探索 Docker Hub 上預先建置的 MATLAB Docker 容器:https://hub.docker.com/r/mathworks
使用 MATLAB 依賴項儲存庫啟用其他功能。對於某些工作流程和工具箱,您必須指定依賴項。如果您想要執行下列任一任務,則必須執行此操作:
matlab-deps 儲存庫儲存庫列出了各種版本和平台的 Dockerfile。若要查看 R2024b 的 Dockerfile,請按一下此處。
這些 Dockerfile 包含註解行以及支援這些附加功能的函式庫。將這些行複製並取消註解到您的 Dockerfile 中。
您可以透過提供有關如何使用 MathWorks 產品的使用者體驗資訊來幫助改進 MATLAB。您的參與確保您得到代表並幫助我們設計更好的產品。若要選擇退出此服務,請刪除 Dockerfile 中的以下行:
ENV MW_DDUX_FORCE_ENABLE=true MW_CONTEXT_TAGS=MATLAB:DOCKERFILE:V1
要了解更多信息,請參閱文件:幫助使 MATLAB 變得更好 - 常見問題。
我們鼓勵您在您的環境中嘗試此儲存庫並提供回饋。如果您遇到技術問題或有增強請求,請在此處建立問題。
版權所有 2021-2024 MathWorks, Inc.