Ce référentiel vous montre comment créer et personnaliser un conteneur Docker® pour MATLAB® et ses boîtes à outils, à l'aide du MATLAB Package Manager ( mpm ).
Vous pouvez utiliser cette image de conteneur comme méthode évolutive et reproductible pour déployer et tester votre code MATLAB.
Utilisez le Dockerfile dans ce référentiel de niveau supérieur si vous souhaitez un moyen léger et simple de créer une image de conteneur MATLAB. Vous pouvez également télécharger des images prédéfinies basées sur ce Dockerfile à partir d'ici.
Pour des ressources alternatives, consultez le dossier alternates qui contient les fichiers Dockerfiles suivants :
mpm
pour installer MATLAB dans le conteneur. Cela vous permet d'installer des boîtes à outils qui ne sont actuellement pas prises en charge par mpm. Utilisez ce Dockerfile si vous préférez utiliser le workflow du programme d'installation MATLAB, au lieu de mpm
.mathworks/matlab
. Ce Dockerfile contient les fonctionnalités de l'image MATLAB sur Docker Hub, vous permettant d'accéder au MATLAB dockerisé via un navigateur, le mode batch ou une invite de commande interactive.Pour plus de ressources liées à Docker, consultez Plus de ressources MATLAB Docker.
Accédez à ce Dockerfile soit en téléchargeant directement ce référentiel depuis GitHub®, soit en clonant ce référentiel puis en naviguant vers le dossier approprié.
git clone https://github.com/mathworks-ref-arch/matlab-dockerfile.git
cd matlab-dockerfile
Créez un conteneur avec un nom et une balise de votre choix.
docker build -t matlab:R2024b .
Exécutez le conteneur. Testez le conteneur en exécutant un exemple de commande MATLAB telle que ver.
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Le Dockerfile crée par défaut un conteneur pour MATLAB R2024b.
L'exemple de commande ver
affiche le numéro de version de MATLAB et des autres produits installés. Pour plus d'informations, voir la version. Pour plus d'informations sur l'exécution du conteneur, consultez la section sur l'exécution du conteneur.
Note
L'utilisation de l'indicateur
--init
dans la commandedocker run
garantit que le conteneur s'arrête correctement lorsqu'une commandedocker stop
oudocker kill
est émise. Pour plus d’informations, consultez les liens suivants :
- Page de référence d'exécution de Docker.
- Article de blog sur l'utilisation de init.
Par défaut, le Dockerfile installe MATLAB pour la dernière version MATLAB disponible sans aucune boîte à outils ou produit supplémentaire dans le dossier /opt/matlab/${MATLAB_RELEASE}
.
Utilisez les options ci-dessous pour personnaliser votre build.
Le Dockerfile prend en charge les variables de construction Docker suivantes :
Nom de l'argument | Valeur par défaut | Description |
---|---|---|
MATLAB_RELEASE | R2024b | La version MATLAB à installer, par exemple, R2023b . |
MATLAB_PRODUCT_LIST | MATLAB | Produits à installer sous forme de liste séparée par des espaces. Pour plus d’informations, consultez MPM.md. Par exemple : MATLAB Simulink Deep_Learning_Toolbox Fixed-Point_Designer |
MATLAB_INSTALL_LOCATION | /opt/matlab/R2024b | Le chemin pour installer MATLAB. |
LICENSE_SERVEUR | désarmé | Le port et le nom d'hôte de la machine qui exécute Network License Manager, à l'aide de la syntaxe port@hostname . Par exemple : 27000@MyServerName |
Utilisez ces arguments avec la commande docker build
pour personnaliser votre image. Vous pouvez également modifier les valeurs par défaut de ces arguments directement dans le Dockerfile.
Par exemple, pour créer une image pour MATLAB R2019b, utilisez cette commande.
docker build --build-arg MATLAB_RELEASE=R2019b -t matlab:R2019b .
Par exemple, pour créer une image avec MATLAB et Simulink®, utilisez cette commande.
docker build --build-arg MATLAB_PRODUCT_LIST= ' MATLAB Simulink ' -t matlab:R2024b .
Par exemple, pour créer une image avec MATLAB installé dans /opt/matlab, utilisez cette commande.
docker build --build-arg MATLAB_INSTALL_LOCATION= ' /opt/matlab ' -t matlab:R2024b .
L'inclusion des informations du serveur de licences avec la commande docker build
signifie que vous n'avez pas besoin de les transmettre lors de l'exécution du conteneur.
# 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
Ce conteneur nécessite un Network License Manager pour obtenir une licence et exécuter MATLAB. Vous aurez besoin soit du port et du nom d'hôte de Network License Manager, soit d'un fichier network.lic
.
Étape 1 : Contactez votre administrateur système, qui peut vous fournir l'un des éléments suivants :
L'adresse de votre serveur et le port sur lequel il s'exécute. Par exemple : [email protected]
Un fichier network.lic
qui contient les lignes suivantes :
# Sample network.lic
SERVER MyServerName.example.com < optional-mac-address > 27000
USE_SERVER
Un fichier license.dat
. Ouvrez le fichier license.dat
, recherchez la ligne SERVER
et extrayez le port@hostname
ou créez un fichier network.lic
en copiant la ligne SERVER
et en ajoutant une ligne USE_SERVER
en dessous.
# snippet from sample license.dat
SERVER MyServerName.example.com < mac-address > 27000
Étape 2 : utilisez port@hostname
ou le fichier network.lic
avec la commande docker build
ou la commande docker run
.
Avec la commande docker build
, soit :
Spécifiez le build-arg LICENSE_SERVER
.
# Example
docker build -t matlab:R2024b --build-arg LICENSE_SERVER=27000@MyServerName .
Utilisez le fichier network.lic
:
network.lic
dans le même dossier que le Dockerfile.COPY network.lic /opt/matlab/licenses/
dans le Dockerfile.LICENSE_SERVER
: # Example
docker build -t matlab:R2024b .
Avec la commande docker run
, utilisez la variable d'environnement MLM_LICENSE_FILE
. Par exemple:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Si vous n'avez pas fourni les informations du serveur de licences lors de la création de l'image, fournissez-les lors de l'exécution du conteneur. Définissez la variable d'environnement MLM_LICENSE_FILE
à l'aide de l'indicateur -e
, avec l'emplacement du gestionnaire de licences réseau au format port@hostname
.
# Start MATLAB, print version information, and exit:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Vous pouvez exécuter le conteneur sans spécifier MLM_LICENSE_FILE
si vous avez fourni les informations du serveur de licences lors de la création de l'image, comme indiqué dans les exemples ci-dessous.
Pour démarrer le conteneur et exécuter MATLAB dans une invite de commande interactive, exécutez :
docker run --init -it --rm matlab:R2024b
Pour démarrer le conteneur, exécutez une commande MATLAB, puis quittez, exécutez :
# Container runs the command RAND in MATLAB and exits.
docker run --init --rm matlab:R2024b -batch rand
Pour remplacer le comportement par défaut du conteneur et exécuter MATLAB avec n'importe quel ensemble d'arguments, tel que -logfile
, exécutez :
docker run --init -it --rm matlab:R2024b -logfile " logfilename.log "
Pour en savoir plus, consultez la documentation : Options de démarrage couramment utilisées.
Explorez les conteneurs Docker MATLAB prédéfinis sur Docker Hub : https://hub.docker.com/r/mathworks
Activez des fonctionnalités supplémentaires à l'aide du référentiel de dépendances MATLAB. Pour certains workflows et boîtes à outils, vous devez spécifier des dépendances. Vous devez le faire si vous souhaitez effectuer l'une des tâches suivantes :
Le référentiel matlab-deps répertorie les fichiers Docker pour diverses versions et plates-formes. Pour afficher le Dockerfile pour R2024b, cliquez ici.
Ces Dockerfiles contiennent des lignes commentées avec les bibliothèques qui prennent en charge ces fonctionnalités supplémentaires. Copiez et décommentez ces lignes dans votre Dockerfile.
Vous pouvez contribuer à l'amélioration de MATLAB en fournissant des informations sur l'expérience utilisateur sur la façon dont vous utilisez les produits MathWorks. Votre participation garantit que vous êtes représenté et nous aide à concevoir de meilleurs produits. Pour vous désinscrire de ce service, supprimez la ligne suivante dans le Dockerfile :
ENV MW_DDUX_FORCE_ENABLE=true MW_CONTEXT_TAGS=MATLAB:DOCKERFILE:V1
Pour en savoir plus, consultez la documentation : Aidez à rendre MATLAB encore meilleur - Foire aux questions.
Nous vous encourageons à essayer ce référentiel avec votre environnement et à fournir vos commentaires. Si vous rencontrez un problème technique ou avez une demande d'amélioration, créez un problème ici.
Copyright 2021-2024 The MathWorks, Inc.