我已经阅读了题为“ Docker.io与普通虚拟机有什么不同? ”的问题,但我仍不确定“虚拟”docker容器是如何的。 例如,在科学环境中,可重复性非常重要。 如果图像在一台机器上产生了一定的结果,如果使用相同的图像,计算是否完全相同?
(我不知道在不同的操作系统,内核,硬件或者体系结构在什么层次上可以改变实际的计算,或者Docker在什么层面上抽象的东西)。
谢谢! 🙂
Docker只是一个围绕LXC容器的pipe理层,基本上是一个Linux风格的监狱。
LXC容器使用与主机相同的处理器和内核,但使用它自己的库(即容器文件系统内的库)。
所以对于可重复性,您需要确保所有这些属性都是相同的。 如果您已经对LXC容器有这个答案,那么它是100%适用于Docker容器。
这真的取决于你想到的计算:
也就是说,Docker的主要目标之一是缓解可重复的操作。 所以在大多数情况下, 特别是在科学环境下,我怀疑操作/计算的结果取决于内核设置,所以Docker看起来非常合适。 而且你不是第一个在这样的环境中使用它: http : //bcbio.wordpress.com/2014/03/06/improving-reproducibility-and-installation-of-genomic-analysis-pipelines-with-docker/