이 리포지토리에서는 MATLAB 패키지 관리자( mpm )를 사용하여 MATLAB®용 Docker® 컨테이너와 해당 툴박스를 구축하고 사용자 정의하는 방법을 보여줍니다.
이 컨테이너 이미지를 확장 가능하고 재현 가능한 방법으로 사용하여 MATLAB 코드를 배포하고 테스트할 수 있습니다.
MATLAB 컨테이너 이미지를 생성하는 가볍고 간단한 방법을 원한다면 이 최상위 저장소에 있는 Dockerfile을 사용하십시오. 여기에서 이 Dockerfile을 기반으로 사전 빌드된 이미지를 다운로드할 수도 있습니다.
대체 리소스는 다음 Dockerfile이 포함된 대체 폴더를 참조하세요.
mpm
대신 MATLAB 설치 프로그램을 사용하여 MATLAB을 컨테이너에 설치합니다. 이를 통해 현재 mpm에서 지원되지 않는 도구 상자를 설치할 수 있습니다. mpm
대신 MATLAB 설치 프로그램 작업 흐름을 사용하려는 경우 이 Dockerfile을 사용하십시오.mathworks/matlab
컨테이너 이미지 위에 추가 도구 상자를 설치하려면 이 Dockerfile을 사용하세요. 이 Dockerfile에는 Docker Hub의 MATLAB 이미지 기능이 포함되어 있어 브라우저, 배치 모드 또는 대화형 명령 프롬프트를 통해 Dockerised MATLAB에 액세스할 수 있습니다.Docker 관련 리소스를 더 보려면 추가 MATLAB Docker 리소스를 참조하십시오.
GitHub®에서 이 리포지토리를 직접 다운로드하거나 이 리포지토리를 복제한 후 적절한 폴더로 이동하여 이 Dockerfile에 액세스하세요.
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은 추가 툴박스나 제품 없이 사용 가능한 최신 MATLAB 릴리스용 MATLAB을 /opt/matlab/${MATLAB_RELEASE}
폴더에 설치합니다.
아래 옵션을 사용하여 빌드를 맞춤설정하세요.
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을 설치할 경로입니다. |
LICENSE_SERVER | 설정되지 않음 | port@hostname 구문을 사용하는 Network License Manager를 실행하는 시스템의 포트 및 호스트 이름입니다. 예: 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단계 : docker build
또는 docker run
명령과 함께 port@hostname
또는 network.lic
파일을 사용합니다.
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 빌드 명령을 실행합니다. # 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
이미지 빌드 시 라이선스 서버 정보를 제공하지 않았다면 컨테이너 실행 시 제공하세요. port@hostname
형식의 네트워크 라이선스 관리자 위치와 함께 -e
플래그를 사용하여 환경 변수 MLM_LICENSE_FILE
설정합니다.
# 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을 더욱 향상시키도록 지원 - 자주 묻는 질문(FAQ) 문서를 참조하십시오.
귀하의 환경에서 이 리포지토리를 사용해 보고 피드백을 제공하는 것이 좋습니다. 기술적인 문제가 발생하거나 개선 요청이 있는 경우 여기에서 문제를 생성하세요.
저작권 2021-2024 The MathWorks, Inc.