Singularity: В чем разница между изображением, контейнером и экземпляром? - PullRequest
0 голосов
/ 22 октября 2019

Я начинаю изучать Сингулярность для воспроизводимого анализа научных конвейеров. Коллега объяснил, что изображение было использовано для создания экземпляра контейнера. Однако при чтении документации и учебных пособий также используется термин instance, и использование image и container выглядит несколько взаимозаменяемо. Итак, я не уверен, что точно понимаю разницу между изображением, контейнером и экземпляром. Я понимаю, что рецепт представляет собой текстовый файл для создания одного из них (я думаю, что изображение?).

Например, на этой странице это объясняет:

Теперь мы можем встроить файл определения в изображение! Просто запустите build, и изображение будет готово к работе:

$ sudo singularity build url-to-pdf-api.img Singularity

Хорошо, так что для построения изображения используется рецепт Singularity с интуитивным расширением .img. Однако описание справки команды build гласит:

$ singularity help build

ИСПОЛЬЗОВАНИЕ: особенность [...] build [build build ...]

Команда build компилирует контейнер по рецепту (файлу определения) или на основе URI, местоположения или архива.

То есть это указывает на то, что мы создаем контейнер?

Тогда есть подкоманды image и instance.

Все эти термины используются взаимозаменяемо? Кажется, иногда они есть, а иногда есть разница между ними.

1 Ответ

1 голос
/ 23 октября 2019

A container - это общая концепция создания среды выполнения изолированной среды и может использоваться в качестве общего термина для обозначения образов Docker или Singularity. Однако иногда он также используется для ссылки на конкретные генерируемые файлы. Это, вероятно, не идеально, так как это может явно вызвать путаницу у новых пользователей.

image обычно используется для ссылки на фактические файлы, созданные с помощью ссылок singularity build ...

instanceк определенному способу запуска сингулярности изображений. Обычно, если вы singularity run some_image.sif или singularity some_image.sif some_command, вы не можете легко получить доступ к его среде во время работы. Однако, если вы вместо этого запустите singularity instance start some_image.sif some_instance1, он создаст постоянную службу, к которой вы сможете получить доступ, как к докеру. Документация службы / экземпляра Singularity содержит несколько хороших примеров того, как экземпляры используются иначе, чем базовые команды exec и run.

...