Este repositorio le muestra cómo crear y personalizar un contenedor Docker® para MATLAB® y sus cajas de herramientas, utilizando MATLAB Package Manager ( mpm ).
Puede utilizar esta imagen de contenedor como método escalable y reproducible para implementar y probar su código MATLAB.
Utilice Dockerfile en este repositorio de nivel superior si desea una forma sencilla y ligera de crear una imagen de contenedor de MATLAB. También puede descargar imágenes prediseñadas basadas en este Dockerfile desde aquí.
Para recursos alternativos, consulte la carpeta de alternativas que contiene los siguientes Dockerfiles:
mpm
para instalar MATLAB en el contenedor. Esto le permite instalar cajas de herramientas que actualmente no son compatibles con mpm. Utilice este Dockerfile si prefiere utilizar el flujo de trabajo del instalador de MATLAB, en lugar de mpm
.mathworks/matlab
. Este Dockerfile contiene las características de la imagen de MATLAB en Docker Hub, lo que le permite acceder a MATLAB acoplado a través de un navegador, modo por lotes o un símbolo del sistema interactivo.Para obtener más recursos relacionados con Docker, consulte Más recursos de MATLAB Docker.
Acceda a este Dockerfile descargando directamente este repositorio desde GitHub® o clonando este repositorio y luego navegando a la carpeta adecuada.
git clone https://github.com/mathworks-ref-arch/matlab-dockerfile.git
cd matlab-dockerfile
Construya un contenedor con un nombre y etiqueta de su elección.
docker build -t matlab:R2024b .
Ejecute el contenedor. Pruebe el contenedor ejecutando un comando de MATLAB de ejemplo como ver.
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
El Dockerfile por defecto construye un contenedor para MATLAB R2024b.
El comando de ejemplo ver
muestra el número de versión de MATLAB y otros productos instalados. Para obtener más información, consulte la ver. Para obtener más información sobre cómo ejecutar el contenedor, consulte la sección sobre Ejecución del contenedor.
Nota
El uso del indicador
--init
en el comandodocker run
garantiza que el contenedor se detenga correctamente cuando se emite un comandodocker stop
odocker kill
. Para obtener más información, consulte los siguientes enlaces:
- Página de referencia de ejecución de Docker.
- Publicación de blog sobre el uso de init.
De forma predeterminada, Dockerfile instala MATLAB para la última versión disponible de MATLAB sin cajas de herramientas ni productos adicionales en la carpeta /opt/matlab/${MATLAB_RELEASE}
.
Utilice las siguientes opciones para personalizar su compilación.
Dockerfile admite las siguientes variables de tiempo de compilación de Docker:
Nombre del argumento | Valor predeterminado | Descripción |
---|---|---|
MATLAB_RELEASE | R2024b | La versión de MATLAB para instalar, por ejemplo, R2023b . |
MATLAB_PRODUCT_LIST | MATLAB | Productos para instalar como una lista separada por espacios. Para obtener más información, consulte MPM.md. Por ejemplo: MATLAB Simulink Deep_Learning_Toolbox Fixed-Point_Designer |
MATLAB_INSTALL_LOCATION | /opt/matlab/R2024b | La ruta para instalar MATLAB. |
LICENCIA_SERVIDOR | desarmado | El puerto y el nombre de host de la máquina que ejecuta Network License Manager, utilizando la sintaxis port@hostname . Por ejemplo: 27000@MyServerName |
Utilice estos argumentos con el comando docker build
para personalizar su imagen. Alternativamente, puede cambiar los valores predeterminados para estos argumentos directamente en el Dockerfile.
Por ejemplo, para crear una imagen para MATLAB R2019b, utilice este comando.
docker build --build-arg MATLAB_RELEASE=R2019b -t matlab:R2019b .
Por ejemplo, para crear una imagen con MATLAB y Simulink®, utilice este comando.
docker build --build-arg MATLAB_PRODUCT_LIST= ' MATLAB Simulink ' -t matlab:R2024b .
Por ejemplo, para crear una imagen con MATLAB instalado en /opt/matlab, utilice este comando.
docker build --build-arg MATLAB_INSTALL_LOCATION= ' /opt/matlab ' -t matlab:R2024b .
Incluir la información del servidor de licencias con el comando docker build
significa que no es necesario pasarla al ejecutar el contenedor.
# 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
Este contenedor requiere un Network License Manager para obtener la licencia y ejecutar MATLAB. Necesitará el puerto y el nombre de host de Network License Manager o un archivo network.lic
.
Paso 1 : póngase en contacto con el administrador del sistema, quien puede proporcionarle uno de los siguientes:
La dirección de su servidor y el puerto en el que se está ejecutando. Por ejemplo: [email protected]
Un archivo network.lic
que contiene las siguientes líneas:
# Sample network.lic
SERVER MyServerName.example.com < optional-mac-address > 27000
USE_SERVER
Un archivo license.dat
. Abra el archivo license.dat
, busque la línea SERVER
y extraiga port@hostname
o cree un archivo network.lic
copiando la línea SERVER
y agregando una línea USE_SERVER
debajo de ella.
# snippet from sample license.dat
SERVER MyServerName.example.com < mac-address > 27000
Paso 2 : use port@hostname
o el archivo network.lic
con el comando docker build
o docker run
.
Con el comando docker build
, puede:
Especifique el argumento de compilación LICENSE_SERVER
.
# Example
docker build -t matlab:R2024b --build-arg LICENSE_SERVER=27000@MyServerName .
Utilice el archivo network.lic
:
network.lic
en la misma carpeta que el Dockerfile.COPY network.lic /opt/matlab/licenses/
en el Dockerfile.LICENSE_SERVER
build-arg: # Example
docker build -t matlab:R2024b .
Con el comando docker run
, use la variable de entorno MLM_LICENSE_FILE
. Por ejemplo:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Si no proporcionó la información del servidor de licencias al crear la imagen, proporciónela al ejecutar el contenedor. Configure la variable de entorno MLM_LICENSE_FILE
usando el indicador -e
, con la ubicación del administrador de licencias de red en el formato port@hostname
.
# Start MATLAB, print version information, and exit:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Puede ejecutar el contenedor sin especificar MLM_LICENSE_FILE
si proporcionó la información del servidor de licencias al crear la imagen, como se muestra en los ejemplos siguientes.
Para iniciar el contenedor y ejecutar MATLAB en un símbolo del sistema interactivo, ejecute:
docker run --init -it --rm matlab:R2024b
Para iniciar el contenedor, ejecute un comando de MATLAB y luego salga, ejecute:
# Container runs the command RAND in MATLAB and exits.
docker run --init --rm matlab:R2024b -batch rand
Para anular el comportamiento predeterminado del contenedor y ejecutar MATLAB con cualquier conjunto de argumentos, como -logfile
, ejecute:
docker run --init -it --rm matlab:R2024b -logfile " logfilename.log "
Para obtener más información, consulte la documentación: Opciones de inicio utilizadas comúnmente.
Explore los contenedores Docker de MATLAB prediseñados en Docker Hub: https://hub.docker.com/r/mathworks
Habilite capacidades adicionales utilizando el repositorio de dependencias de MATLAB. Para algunos flujos de trabajo y cajas de herramientas, debe especificar dependencias. Debe hacer esto si desea realizar alguna de las siguientes tareas:
El repositorio matlab-deps enumera Dockerfiles para varias versiones y plataformas. Para ver el Dockerfile para R2024b, haga clic aquí.
Estos Dockerfiles contienen líneas comentadas con las bibliotecas que admiten estas capacidades adicionales. Copie y descomente estas líneas en su Dockerfile.
Puede ayudar a mejorar MATLAB proporcionando información sobre la experiencia del usuario sobre cómo utiliza los productos MathWorks. Su participación garantiza que esté representado y nos ayuda a diseñar mejores productos. Para optar por no participar en este servicio, elimine la siguiente línea en el Dockerfile:
ENV MW_DDUX_FORCE_ENABLE=true MW_CONTEXT_TAGS=MATLAB:DOCKERFILE:V1
Para obtener más información, consulte la documentación: Ayude a hacer que MATLAB sea aún mejor: preguntas frecuentes.
Le recomendamos que pruebe este repositorio con su entorno y proporcione comentarios. Si encuentra un problema técnico o tiene una solicitud de mejora, cree un problema aquí.
Copyright 2021-2024 The MathWorks, Inc.