Este repositório mostra como construir e personalizar um contêiner Docker® para MATLAB® e suas caixas de ferramentas, usando o MATLAB Package Manager ( mpm ).
Você pode usar esta imagem de contêiner como um método escalonável e reproduzível para implantar e testar seu código MATLAB.
Use o Dockerfile neste repositório de nível superior se desejar uma maneira leve e simples de criar uma imagem de contêiner MATLAB. Você também pode baixar imagens pré-construídas com base neste Dockerfile aqui.
Para recursos alternativos, consulte a pasta alternativa que contém os seguintes Dockerfiles:
mpm
para instalar o MATLAB no contêiner. Isso permite que você instale caixas de ferramentas que atualmente não são suportadas pelo mpm. Use este Dockerfile se preferir usar o fluxo de trabalho do instalador MATLAB, em vez de mpm
.mathworks/matlab
. Este Dockerfile contém os recursos da imagem MATLAB no Docker Hub, permitindo acessar o MATLAB encaixado por meio de um navegador, modo em lote ou um prompt de comando interativo.Para obter mais recursos relacionados ao Docker, consulte Mais recursos do MATLAB Docker.
Acesse este Dockerfile baixando diretamente este repositório do GitHub® ou clonando este repositório e navegando até a pasta apropriada.
git clone https://github.com/mathworks-ref-arch/matlab-dockerfile.git
cd matlab-dockerfile
Crie um contêiner com nome e tag de sua escolha.
docker build -t matlab:R2024b .
Execute o contêiner. Teste o contêiner executando um comando MATLAB de exemplo, como ver.
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
O padrão do Dockerfile é construir um contêiner para MATLAB R2024b.
O comando de exemplo ver
exibe o número da versão do MATLAB e de outros produtos instalados. Para obter mais informações, consulte ver. Para obter mais informações sobre como executar o contêiner, consulte a seção Executando o contêiner.
Observação
Usar o sinalizador
--init
no comandodocker run
garante que o contêiner pare normalmente quando um comandodocker stop
oudocker kill
for emitido. Para mais informações, consulte os seguintes links:
- Página de referência de execução do Docker.
- Postagem no blog sobre o uso do init.
Por padrão, o Dockerfile instala o MATLAB para a versão mais recente do MATLAB disponível sem quaisquer caixas de ferramentas ou produtos adicionais na pasta /opt/matlab/${MATLAB_RELEASE}
.
Use as opções abaixo para personalizar sua construção.
O Dockerfile oferece suporte às seguintes variáveis de tempo de compilação do Docker:
Nome do argumento | Valor padrão | Descrição |
---|---|---|
MATLAB_RELEASE | R2024b | A versão MATLAB para instalar, por exemplo, R2023b . |
MATLAB_PRODUCT_LIST | MATLAB | Produtos a serem instalados como uma lista separada por espaços. Para obter mais informações, consulte MPM.md. Por exemplo: MATLAB Simulink Deep_Learning_Toolbox Fixed-Point_Designer |
MATLAB_INSTALL_LOCATION | /opt/matlab/R2024b | O caminho para instalar o MATLAB. |
LICENSE_SERVER | desarmar | A porta e o nome do host da máquina que está executando o Network License Manager, usando a sintaxe port@hostname . Por exemplo: 27000@MyServerName |
Use esses argumentos com o comando docker build
para personalizar sua imagem. Como alternativa, você pode alterar os valores padrão desses argumentos diretamente no Dockerfile.
Por exemplo, para construir uma imagem para MATLAB R2019b, use este comando.
docker build --build-arg MATLAB_RELEASE=R2019b -t matlab:R2019b .
Por exemplo, para construir uma imagem com MATLAB e Simulink®, use este comando.
docker build --build-arg MATLAB_PRODUCT_LIST= ' MATLAB Simulink ' -t matlab:R2024b .
Por exemplo, para construir uma imagem com MATLAB instalado em /opt/matlab, use este comando.
docker build --build-arg MATLAB_INSTALL_LOCATION= ' /opt/matlab ' -t matlab:R2024b .
Incluir as informações do servidor de licença com o comando docker build
significa que você não precisa transmiti-las ao executar o contêiner.
# 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 contêiner requer um Network License Manager para licenciar e executar o MATLAB. Você precisará da porta e do nome do host do Network License Manager ou de um arquivo network.lic
.
Etapa 1 : entre em contato com o administrador do sistema, que pode fornecer um dos seguintes itens:
O endereço do seu servidor e a porta em que ele está sendo executado. Por exemplo: [email protected]
Um arquivo network.lic
que contém as seguintes linhas:
# Sample network.lic
SERVER MyServerName.example.com < optional-mac-address > 27000
USE_SERVER
Um arquivo license.dat
. Abra o arquivo license.dat
, encontre a linha SERVER
e extraia port@hostname
ou crie um arquivo network.lic
copiando a linha SERVER
e adicionando uma linha USE_SERVER
abaixo dela.
# snippet from sample license.dat
SERVER MyServerName.example.com < mac-address > 27000
Etapa 2 : use port@hostname
ou o arquivo network.lic
com o comando docker build
ou docker run
.
Com o comando docker build
:
Especifique o argumento de construção LICENSE_SERVER
.
# Example
docker build -t matlab:R2024b --build-arg LICENSE_SERVER=27000@MyServerName .
Use o arquivo network.lic
:
network.lic
na mesma pasta do Dockerfile.COPY network.lic /opt/matlab/licenses/
no Dockerfile.LICENSE_SERVER
: # Example
docker build -t matlab:R2024b .
Com o comando docker run
, use a variável de ambiente MLM_LICENSE_FILE
. Por exemplo:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Se você não forneceu as informações do servidor de licença ao criar a imagem, forneça-as ao executar o contêiner. Configure a variável de ambiente MLM_LICENSE_FILE
usando o sinalizador -e
, com o local do gerenciador de licença de rede no formato port@hostname
.
# Start MATLAB, print version information, and exit:
docker run --init --rm -e MLM_LICENSE_FILE=27000@MyServerName matlab:R2024b -batch ver
Você pode executar o contêiner sem especificar MLM_LICENSE_FILE
se tiver fornecido as informações do servidor de licença ao criar a imagem, conforme mostrado nos exemplos abaixo.
Para iniciar o contêiner e executar o MATLAB em um prompt de comando interativo, execute:
docker run --init -it --rm matlab:R2024b
Para iniciar o contêiner, execute um comando MATLAB e, em seguida, saia e execute:
# Container runs the command RAND in MATLAB and exits.
docker run --init --rm matlab:R2024b -batch rand
Para substituir o comportamento padrão do contêiner e executar o MATLAB com qualquer conjunto de argumentos, como -logfile
, execute:
docker run --init -it --rm matlab:R2024b -logfile " logfilename.log "
Para saber mais, consulte a documentação: Opções de inicialização comumente usadas.
Explore contêineres Docker MATLAB pré-construídos no Docker Hub: https://hub.docker.com/r/mathworks
Habilite recursos adicionais usando o repositório de dependências do MATLAB. Para alguns fluxos de trabalho e caixas de ferramentas, você deve especificar dependências. Você deve fazer isso se quiser realizar qualquer uma das seguintes tarefas:
O repositório matlab-deps lista Dockerfiles para vários lançamentos e plataformas. Para visualizar o Dockerfile para R2024b, clique aqui.
Esses Dockerfiles contêm linhas comentadas com as bibliotecas que suportam esses recursos adicionais. Copie e descomente essas linhas em seu Dockerfile.
Você pode ajudar a melhorar o MATLAB fornecendo informações sobre a experiência do usuário sobre como usar os produtos MathWorks. Sua participação garante que você esteja representado e nos ajuda a projetar produtos melhores. Para cancelar este serviço, exclua a seguinte linha no Dockerfile:
ENV MW_DDUX_FORCE_ENABLE=true MW_CONTEXT_TAGS=MATLAB:DOCKERFILE:V1
Para saber mais, consulte a documentação: Ajude a tornar o MATLAB ainda melhor - Perguntas frequentes.
Incentivamos você a experimentar este repositório em seu ambiente e fornecer feedback. Se você encontrar um problema técnico ou tiver uma solicitação de melhoria, crie um problema aqui.
Direitos autorais 2021-2024 The MathWorks, Inc.