Пакет автономные приложения MATLAB в изображения докера

Поддерживаемая платформа: Linux® только.

В этом примере показано, как группировать автономное приложение MATLAB® в изображение Docker®.

Необходимые условия

  1. Проверьте, что вам установили Докера на вашей машине Linux путем ввода docker в консоли. Если вам не установили Докера, можно следовать инструкциям на веб-сайте Докера, чтобы установить и настроить Докера.

    https://docs.docker.com/engine/install/

  2. Проверьте, что инсталлятор 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

Запишите функцию MATLAB под названием mymagic и сохраните его с именем файла mymagic.m.

function mymagic(x)
y = magic(x);
disp(y)

Протестируйте функцию в командной строке MATLAB.

mymagic(5)
    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

    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

Чтобы сохранить ваш образ Докера как архив tar, откройте консоль Linux, перейдите к папке контекста Докера и введите следующее.

$ docker save mymagic-standalone-app -o mymagic-standalone-app.tar

Файл с именем mymagic-standalone-app.tar создается в вашей текущей папке. Установите соответствующие полномочия с помощью chmod до совместного использования tarball с другими пользователями.

Загрузите изображение докера из архива Tar

Загрузите изображение, содержавшееся в 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

Смотрите также

| | |