2015-04-15 126 views
9

我是Docker的新手,因此我的问题可能非常天真/愚蠢。我们目前使用的应用程序需要编译在不同的平台上,以使其在所需的平台(如Linux和Window)中工作。因此,我们需要在不同的平台上编译源代码(C/C++),并根据其操作系统为客户提供不同的可执行文件。 我的问题是 1.是否有可能与码头,我有一个可执行文件在所有平台上工作?即我编译在Linux下在一个平台e.g我的源代码和可执行船码头工人与在Window平台上运行提前Docker可以帮助构建在不同平台上工作的可执行文件

回答

2

感谢您仍然需要编写不同平台上的源代码。码头工作人员的目标是在每个平台上自动构建和测试代码,以便您可以在代码上工作,并让它在每个平台上构建和测试。

您必须首先设置docker和测试脚本,并让代码跨平台工作。但在完成之后,除非真正打破它,否则基本上不会担心任何其他平台。

+0

感谢您的回答。我有这个查询,如果我运行我的应用程序与docker测试是否它的执行变得太慢,如果比较直接运行在所需的平台 – pgh

2

Docker允许运行在任何现代Linux发行版中运行相同的容器 - 您只需要在此安装docker。您无法直接在Windows上运行这些容器 - 您需要运行带有运行docker容器的Linux的虚拟机。这就是boot2docker正在做的 - 在Windows上运行docker容器,在虚拟机上运行Mac OS X.在某些情况下它是可以接受的。

+0

感谢您的答案。当我们说容器时,是否与可执行文件相同,即是否编译有所需的源代码。 ? 。如果是的话,那么这意味着我可以在任何现代Linux发行版上运行这个exe,如果他们在那里安装了docker的话。 – pgh

+0

容器是一组文件 - 通常基于一些Linux发行版(例如Ubuntu) - 像小而轻的虚拟机 - 所以它通常是数百个二进制文件(Linux二进制文件,而不是windows.exe),通常用于posix环境(但有些人使用非常小的基本图像)。也有默认情况下在容器中执行的二进制文件。这就是为什么你能够在RedHat Linux上的容器上运行Ubuntu应用程序的原因 - 因为所有的Ubuntu依赖关系已经存在。 – ISanych

+0

感谢您澄清疑问。只是最后一个问题。如果我运行我的应用程序进行docker测试,与直接在所需平台上运行相比,执行速度是否会变得太慢。任何想法或评论。 – pgh

1

不,它不能,码头只有Linux。要在Windows中运行docker,您需要need a virtual machine

除非您花时间包装安装程序脚本以安装虚拟机和所有虚拟机,否则只需在您选择的Virtual Box或VMWare中运行适当的虚拟机。即使这样,您在Windows上的应用程序体验也会是第二次的,因为它不是本地运行的。

相关问题