Я прочитал вопрос под названием "Чем Docker.io отличается от обычной виртуальной машины?", но я до сих пор не уверен, насколько" виртуальные "докер-контейнеры. Например, в научных условиях очень важна повторяемость. Если изображение дает определенный результат на одной машине, будут ли вычисления точно такими же на другой если использовать то же изображение?
(Я действительно не знаю, на каком уровне разные операционные системы, ядра, оборудование или архитектуры могут изменять вычисления на практике, или на каком уровне Docker абстрагирует вещи, если вообще.)
Спасибо! :)
Docker - это просто уровень управления вокруг контейнера LXC, по сути, тюрьма в стиле Linux.
Контейнер LXC использует тот же процессор и ядро, что и хост, но использует собственные библиотеки (то есть библиотеки внутри файловой системы контейнера).
Итак, для повторяемости вам нужно убедиться, что все эти атрибуты одинаковы. Если у вас уже есть ответ по поводу контейнеров LXC, он на 100% применим к контейнерам Docker.
Это действительно зависит от того, о каких вычислениях вы думаете:
Тем не менее, одна из основных целей Docker - облегчить повторяемые операции. Так что в большинстве случаев особенно в научной среде, где я сомневаюсь, что результат операции / вычисления когда-либо зависит от настроек ядра, Docker кажется подходящим вариантом. И вы не первый, кто использует его в такой среде: http://bcbio.wordpress.com/2014/03/06/improving-reproducibility-and-installation-of-genomic-analysis-pipelines-with-docker/