Поддерживаемая платформа: Linux® только.
В этом примере показано, как группировать автономное приложение MATLAB® в изображение Докера.
Проверьте, что вам установили Докера на вашей машине Linux путем ввода docker
в консоли. Если вам не установили Докера, можно следовать инструкциям на веб-сайте Докера, чтобы установить и настроить Докера.
Проверьте, что инсталлятор MATLAB Runtime доступен на вашей машине. Можно проверить его существование путем выполнения compiler.runtime.download
функция в командной строке MATLAB. Если существует существующий инсталлятор на машине, функция возвращает сообщение, утверждая, что инсталлятор MATLAB Runtime существует и задает его местоположение. В противном случае это загружает инсталлятор MATLAB Runtime, совпадающий с версией и уровнем обновления MATLAB от того, где команда выполняется.
Если компьютер, который вы используете, не соединяется с Интернетом, необходимо загрузить инсталлятор MATLAB Runtime с компьютера, который соединяется с Интернетом. После загрузки инсталлятора MATLAB Runtime необходимо передать инсталлятор компьютеру, который не соединяется с Интернетом. Можно загрузить инсталлятор с веб-сайта MathWorks.
https://www.mathworks.com/products/compiler/matlab-runtime.html
Запишите функцию MATLAB под названием mymagic
и сохраните его с именем файла mymagic.m
.
function y = mymagic(x)
y = magic(x);
Протестируйте функцию в командной строке MATLAB.
out = mymagic(5)
out = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Сделайте mymagic
функция в автономное приложение с помощью compiler.build.standaloneApplication
функция.
res = compiler.build.standaloneApplication('mymagic.m', 'TreatInputsAsNumeric', true)
res = Results with properties: BuildType: 'standaloneApplication' Files: {3×1 cell} Options: [1×1 compiler.build.StandaloneApplicationOptions]
Если сборка завершена, функция создает папку под названием mymagicstandaloneApplication
в вашем текущем каталоге, чтобы сохранить автономное приложение. Results
объект res
возвращенный в командной строке MATLAB содержит информацию о сборке.
DockerOptions
ОбъектДо создания изображения Докера создайте DockerOptions
объект с помощью compiler.package.DockerOptions
функционируйте и передайте Results
объект res
и название картинки mymagic-standalone-app
как входные параметры. compiler.package.DockerOptions
функция позволяет вам настроить упаковку Докера изображений.
opts = compiler.package.DockerOptions(res,'ImageName','mymagic-standalone-app')
opts = DockerOptions with properties: EntryPoint: 'mymagic' ExecuteDockerBuild: on ImageName: 'mymagic-standalone-app' DockerContext: './mymagic-standalone-appdocker'
Создайте изображение Докера с помощью compiler.package.docker
функционируйте и передайте Results
объект res
и DockerOptions
объект opts
как входные параметры.
compiler.package.docker(res, 'Options', opts)
Generating Runtime Image Cleaning MATLAB Runtime installer location. It may take several minutes... Copying MATLAB Runtime installer. It may take several minutes... ... ... ... Successfully built 6501fa2bc057 Successfully tagged mymagic-standalone-app:latest DOCKER CONTEXT LOCATION: /home/user/MATLAB/work/mymagic-standalone-appdocker SAMPLE DOCKER RUN COMMAND: docker run --rm -e "DISPLAY=:0" -v /tmp/.X11-unix:/tmp/.X11-unix mymagic-standalone-app
Однажды группирующий в полном, функция создает папку под названием mymagic-standalone-appdocker
в вашем текущем каталоге. Эта папка является контекстом Докера и содержит Dockerfile. compiler.package.docker
функционируйте также возвращает местоположение контекста Докера и демонстрационной команды выполнения Докера. Можно использовать демонстрационную команду выполнения Докера, чтобы протестировать, выполняется ли изображение правильно.
Во время упаковочного процесса необходимые биты для MATLAB Runtime упакованы как родительское изображение Докера, и автономное приложение упаковано как дочернее изображение Докера.
Откройте консоль Linux и перейдите к папке контекста Докера. Проверьте что mymagic-standalone-app
Изображение докера перечислено в вашем списке изображений Докера.
$ docker images |
REPOSITORY TAG IMAGE ID CREATED SIZE mymagic-standalone-app latest 6501fa2bc057 23 seconds ago 1.03GB matlabruntime/r2020b/update0/4000000000000000 latest c6eb5ba4ae69 24 hours ago 1.03GB
После проверки, что mymagic-standalone-app
Изображение докера перечислено в вашем списке изображений Докера, выполните демонстрационную команду выполнения с входным параметром 5
:
$ docker run --rm -e "DISPLAY=:0" -v /tmp/.X11-unix:/tmp/.X11-unix mymagic-standalone-app 5 |
No protocol specified out = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
Автономное приложение упаковано и может теперь быть запущено как изображение Докера.
Примечание
Когда запущенные приложения, которые генерируют графики или графику, выполняют xhost
программа с +
опция до выполнения вашего изображения Докера.
xhost +
xhost
доступ к программным управлениям к X серверам отображения, таким образом, позволяя графикам и графике, которая будет отображена. +
опция указывает, что у всех есть доступ к X серверам отображения. Если при запуске xhost
программа с +
опция до запущенных приложений, которые не генерируют графики или графику, сообщение No protocol specified
больше не отображается.Можно добавить изображение Докера в различных способах.
Продвиньте свое изображение Докерам центральный реестр DockerHub, или к вашему частному реестру. Это - наиболее распространенный рабочий процесс.
Сохраните свой образ как архив tar и совместно используйте его с другими. Этот рабочий процесс подходит для мгновенного тестирования.
Для получения дополнительной информации о продвижении вашего изображения к центральному реестру Докера или вашему частному реестру, консультируйтесь с документацией Докера.
Чтобы сохранить ваш образ Докера как архив tar, откройте консоль Linux, перейдите к папке контекста Докера и введите следующее.
$ docker save mymagic-standalone-app -o mymagic-standalone-app.tar |
Файл с именем mymagic-standalone-app.tar
создается в вашей текущей папке. Установите соответствующие полномочия с помощью chmod
до совместного использования tarball с другими пользователями.
Загрузите изображение, содержавшееся в tarball на машине конечного пользователя, и затем запустите его.
$ docker load --input mymagic-standalone-app.tar |
Проверьте, что изображение загружается.
$ docker images |
$ xhost + $ docker run --rm -e "DISPLAY=:0" -v /tmp/.X11-unix:/tmp/.X11-unix mymagic-standalone-app 5 |
compiler.build.standaloneApplication
| compiler.package.docker
| compiler.package.DockerOptions
| compiler.runtime.download