Dieses Repository zeigt Ihnen, wie Sie mit dem MATLAB Package Manager ( mpm ) einen Docker®-Container für MATLAB® und seine Toolboxen erstellen und anpassen.
Sie können dieses Container-Image als skalierbare und reproduzierbare Methode zum Bereitstellen und Testen Ihres MATLAB-Codes verwenden.
Verwenden Sie die Docker-Datei in diesem Repository der obersten Ebene, wenn Sie eine unkomplizierte und einfache Möglichkeit zum Erstellen eines MATLAB-Container-Images wünschen. Sie können hier auch vorgefertigte Images herunterladen, die auf dieser Docker-Datei basieren.
Alternative Ressourcen finden Sie im Alternates-Ordner , der die folgenden Docker-Dateien enthält:
mpm
, um MATLAB im Container zu installieren. Dadurch können Sie Toolboxen installieren, die derzeit nicht von mpm unterstützt werden. Verwenden Sie diese Docker-Datei, wenn Sie anstelle von mpm
lieber den MATLAB-Installationsworkflow verwenden möchten.mathworks/matlab
Container-Image installieren möchten. Diese Docker-Datei enthält die Funktionen des MATLAB-Images auf Docker Hub und ermöglicht Ihnen den Zugriff auf das dockerisierte MATLAB über einen Browser, den Batch-Modus oder eine interaktive Eingabeaufforderung.Weitere Docker-bezogene Ressourcen finden Sie unter Weitere MATLAB Docker-Ressourcen.
Greifen Sie auf diese Docker-Datei zu, indem Sie entweder dieses Repository direkt von GitHub® herunterladen oder indem Sie dieses Repository klonen und dann zum entsprechenden Ordner navigieren.
git clone https://github.com/mathworks-ref-arch/matlab-dockerfile.git
cd matlab-dockerfile
Erstellen Sie einen Container mit einem Namen und einem Tag Ihrer Wahl.
docker build -t matlab:R2024b .
Führen Sie den Container aus. Testen Sie den Container, indem Sie einen MATLAB-Beispielbefehl wie Version ausführen.
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Die Docker-Datei erstellt standardmäßig einen Container für MATLAB R2024b.
Der Beispielbefehl ver
zeigt die Versionsnummer von MATLAB und anderen installierten Produkten an. Weitere Informationen finden Sie unter Ver. Weitere Informationen zum Ausführen des Containers finden Sie im Abschnitt zum Ausführen des Containers.
Notiz
Durch die Verwendung des Flags
--init
imdocker run
-Befehl wird sichergestellt, dass der Container ordnungsgemäß stoppt, wenn eindocker stop
oderdocker kill
-Befehl ausgegeben wird. Weitere Informationen finden Sie unter den folgenden Links:
- Referenzseite zur Docker-Ausführung.
- Blogbeitrag zur Verwendung von init.
Standardmäßig installiert die Docker-Datei MATLAB für die neueste verfügbare MATLAB-Version ohne zusätzliche Toolboxen oder Produkte im Ordner /opt/matlab/${MATLAB_RELEASE}
.
Verwenden Sie die folgenden Optionen, um Ihren Build anzupassen.
Die Docker-Datei unterstützt die folgenden Docker-Build-Time-Variablen:
Argumentname | Standardwert | Beschreibung |
---|---|---|
MATLAB_RELEASE | R2024b | Die MATLAB-Version zur Installation, beispielsweise R2023b . |
MATLAB_PRODUCT_LIST | MATLAB | Zu installierende Produkte als durch Leerzeichen getrennte Liste. Weitere Informationen finden Sie unter MPM.md. Zum Beispiel: MATLAB Simulink Deep_Learning_Toolbox Fixed-Point_Designer |
MATLAB_INSTALL_LOCATION | /opt/matlab/R2024b | Der Pfad zur Installation von MATLAB. |
LICENSE_SERVER | nicht gesetzt | Der Port und Hostname des Computers, auf dem der Network License Manager ausgeführt wird, unter Verwendung der port@hostname -Syntax. Beispiel: 27000@MyServerName |
Verwenden Sie diese Argumente mit dem docker build
Befehl, um Ihr Image anzupassen. Alternativ können Sie die Standardwerte für diese Argumente direkt in der Docker-Datei ändern.
Um beispielsweise ein Image für MATLAB R2019b zu erstellen, verwenden Sie diesen Befehl.
docker build --build-arg MATLAB_RELEASE=R2019b -t matlab:R2019b .
Um beispielsweise ein Image mit MATLAB und Simulink® zu erstellen, verwenden Sie diesen Befehl.
docker build --build-arg MATLAB_PRODUCT_LIST= ' MATLAB Simulink ' -t matlab:R2024b .
Um beispielsweise ein Image mit MATLAB zu erstellen, das unter /opt/matlab installiert ist, verwenden Sie diesen Befehl.
docker build --build-arg MATLAB_INSTALL_LOCATION= ' /opt/matlab ' -t matlab:R2024b .
Wenn Sie die Lizenzserverinformationen in den docker build
-Befehl einbeziehen, müssen Sie diese beim Ausführen des Containers nicht übergeben.
# 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
Für diesen Container ist ein Network License Manager erforderlich, um MATLAB zu lizenzieren und auszuführen. Sie benötigen entweder den Port und den Hostnamen des Network License Managers oder eine network.lic
-Datei.
Schritt 1 : Wenden Sie sich an Ihren Systemadministrator, der Ihnen eine der folgenden Möglichkeiten bieten kann:
Die Adresse Ihres Servers und der Port, auf dem er ausgeführt wird. Beispiel: [email protected]
Eine network.lic
Datei, die die folgenden Zeilen enthält:
# Sample network.lic
SERVER MyServerName.example.com < optional-mac-address > 27000
USE_SERVER
Eine Datei license.dat
. Öffnen Sie die Datei license.dat
, suchen Sie die Zeile SERVER
und extrahieren Sie entweder port@hostname
oder erstellen Sie eine Datei network.lic
, indem Sie die Zeile SERVER
kopieren und darunter eine Zeile USE_SERVER
hinzufügen.
# snippet from sample license.dat
SERVER MyServerName.example.com < mac-address > 27000
Schritt 2 : Verwenden Sie port@hostname
oder die Datei network.lic
entweder mit dem Befehl docker build
oder dem Befehl docker run
.
Mit dem docker build
Befehl entweder:
Geben Sie das Build-Argument LICENSE_SERVER
.
# Example
docker build -t matlab:R2024b --build-arg LICENSE_SERVER=27000@MyServerName .
Verwenden Sie die Datei network.lic
:
network.lic
im selben Ordner wie die Docker-Datei.COPY network.lic /opt/matlab/licenses/
in der Docker-Datei aus.LICENSE_SERVER
aus: # Example
docker build -t matlab:R2024b .
Verwenden Sie mit dem docker run
Befehl die Umgebungsvariable MLM_LICENSE_FILE
. Zum Beispiel:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Wenn Sie beim Erstellen des Images keine Informationen zum Lizenzserver angegeben haben, geben Sie diese beim Ausführen des Containers an. Legen Sie die Umgebungsvariable MLM_LICENSE_FILE
mit dem Flag -e
fest, mit dem Speicherort des Netzwerklizenzmanagers im Format port@hostname
.
# Start MATLAB, print version information, and exit:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Sie können den Container ohne Angabe von MLM_LICENSE_FILE
ausführen, wenn Sie beim Erstellen des Images die Informationen zum Lizenzserver angegeben haben, wie in den folgenden Beispielen gezeigt.
Führen Sie Folgendes aus, um den Container zu starten und MATLAB in einer interaktiven Eingabeaufforderung auszuführen:
docker run --init -it --rm matlab:R2024b
Um den Container zu starten, führen Sie einen MATLAB-Befehl aus, beenden Sie ihn und führen Sie Folgendes aus:
# Container runs the command RAND in MATLAB and exits.
docker run --init --rm matlab:R2024b -batch rand
Um das Standardverhalten des Containers zu überschreiben und MATLAB mit einem beliebigen Satz von Argumenten, wie etwa -logfile
, auszuführen, führen Sie Folgendes aus:
docker run --init -it --rm matlab:R2024b -logfile " logfilename.log "
Weitere Informationen finden Sie in der Dokumentation: Häufig verwendete Startoptionen.
Entdecken Sie vorgefertigte MATLAB-Docker-Container auf Docker Hub: https://hub.docker.com/r/mathworks
Aktivieren Sie zusätzliche Funktionen mithilfe des MATLAB-Abhängigkeits-Repositorys. Für einige Workflows und Toolboxen müssen Sie Abhängigkeiten angeben. Sie müssen dies tun, wenn Sie eine der folgenden Aufgaben ausführen möchten:
Das Matlab-Deps-Repository listet Docker-Dateien für verschiedene Releases und Plattformen auf. Um die Docker-Datei für R2024b anzuzeigen, klicken Sie hier.
Diese Docker-Dateien enthalten kommentierte Zeilen mit den Bibliotheken, die diese zusätzlichen Funktionen unterstützen. Kopieren Sie diese Zeilen und kommentieren Sie sie in Ihre Docker-Datei.
Sie können dazu beitragen, MATLAB zu verbessern, indem Sie Informationen zur Benutzererfahrung darüber bereitstellen, wie Sie MathWorks-Produkte verwenden. Ihre Teilnahme stellt sicher, dass Sie vertreten sind und hilft uns, bessere Produkte zu entwickeln. Um diesen Dienst zu deaktivieren, löschen Sie die folgende Zeile in der Docker-Datei:
ENV MW_DDUX_FORCE_ENABLE=true MW_CONTEXT_TAGS=MATLAB:DOCKERFILE:V1
Weitere Informationen finden Sie in der Dokumentation: Helfen Sie dabei, MATLAB noch besser zu machen – häufig gestellte Fragen.
Wir empfehlen Ihnen, dieses Repository in Ihrer Umgebung auszuprobieren und Feedback zu geben. Wenn Sie auf ein technisches Problem stoßen oder eine Verbesserungsanfrage haben, erstellen Sie hier ein Problem.
Copyright 2021-2024 The MathWorks, Inc.