このリポジトリでは、MATLAB パッケージ マネージャー ( mpm ) を使用して、MATLAB® 用の Docker® コンテナーとそのツールボックスを構築およびカスタマイズする方法を示します。
このコンテナー イメージを、MATLAB コードを展開してテストするためのスケーラブルで再現可能な方法として使用できます。
MATLAB コンテナー イメージを作成する軽量かつ簡単な方法が必要な場合は、この最上位リポジトリの Dockerfile を使用します。この Dockerfile に基づいて事前に構築されたイメージをここからダウンロードすることもできます。
代替リソースについては、次の Dockerfile が含まれる代替フォルダーを参照してください。
mpm
ではなく MATLAB インストーラーを使用して、MATLAB をコンテナーにインストールします。これにより、mpm で現在サポートされていないツールボックスをインストールできるようになります。 mpm
の代わりに MATLAB インストーラー ワークフローを使用する場合は、この Dockerfile を使用します。mathworks/matlab
コンテナー イメージ上に追加のツールボックスをインストールする場合は、この Dockerfile を使用します。この Dockerfile には、Docker Hub 上の MATLAB イメージの機能が含まれており、ブラウザー、バッチ モード、または対話型コマンド プロンプトを介して Docker 化された MATLAB にアクセスできるようになります。その他の Docker 関連リソースについては、その他の MATLAB Docker リソースを参照してください。
この Dockerfile にアクセスするには、このリポジトリを GitHub® から直接ダウンロードするか、このリポジトリのクローンを作成して適切なフォルダに移動します。
git clone https://github.com/mathworks-ref-arch/matlab-dockerfile.git
cd matlab-dockerfile
選択した名前とタグを使用してコンテナを構築します。
docker build -t matlab:R2024b .
コンテナを実行します。 ver などのサンプル MATLAB コマンドを実行して、コンテナーをテストします。
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Dockerfile は、デフォルトで MATLAB R2024b のコンテナーを構築します。
サンプル コマンドver
MATLAB およびその他のインストールされている製品のバージョン番号を表示します。詳細については、ver. を参照してください。コンテナーの実行の詳細については、「コンテナーの実行」のセクションを参照してください。
注記
docker run
コマンドで--init
フラグを使用すると、docker stop
またはdocker kill
コマンドが発行されたときにコンテナーが正常に停止します。詳細については、次のリンクを参照してください。
- Docker 実行のリファレンス ページ。
- init の使用法に関するブログ投稿。
デフォルトでは、Dockerfile は、 /opt/matlab/${MATLAB_RELEASE}
フォルダーに追加のツールボックスや製品を追加せずに、利用可能な最新の MATLAB リリースの MATLAB をインストールします。
以下のオプションを使用してビルドをカスタマイズします。
Dockerfile は、次の Docker ビルド時変数をサポートしています。
引数名 | デフォルト値 | 説明 |
---|---|---|
MATLAB_RELEASE | R2024b | インストールする MATLAB リリース (例: R2023b 。 |
MATLAB_PRODUCT_LIST | MATLAB | スペース区切りのリストとしてインストールする製品。詳細については、MPM.md を参照してください。例: MATLAB Simulink Deep_Learning_Toolbox Fixed-Point_Designer |
MATLAB_INSTALL_LOCATION | /opt/matlab/R2024b | MATLAB をインストールするパス。 |
ライセンス_サーバー | 設定を解除する | 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 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 : port@hostname
またはnetwork.lic
ファイルをdocker build
またはdocker run
コマンドで使用します。
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
ビルド引数を指定せずに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 をより良くするために - よくある質問」を参照してください。
このリポジトリをご使用の環境で試して、フィードバックをお寄せいただくことをお勧めします。技術的な問題が発生した場合、または機能拡張のリクエストがある場合は、ここで問題を作成してください。
Copyright 2021-2024 The MathWorks, Inc.