了解码头工人


0

我想确保我在这里正确理解docker。我的主要目标是向我的朋友和同事分发我用Python / Haskell或C ++编写的少量软件(通常带有完整的源代码)。

我自己在Ubuntu 14.04机器上工作。但是通常我分发它的人可以在不同的机器和操作系统上工作,他们没有运行我的代码所需的库。

如果我正确理解docker,以下是否是有效的用例?

  • 设置一个空的docker文件夹
  • 编写代码并将所有库和依赖项安装在该文件夹中。
  • 将其上传到Docker云
  • 告诉我的朋友将其下载到他的Windows计算机或Mac上,然后运行代码而不必大惊小怪。

这是docker允许的一个很好的总结吗?如果是这样,那真是个绝妙的消息,因为它将对我的研究工作具有可复制性并可以在多台计算机上分发起到很大帮助。

当他们将这个软件与虚拟机进行比较时,我并没有真正理解这些解释。

Answers:


0

您对docker的理解很接近,但与docker的含义并不完全相同;)

Docker是一种容器服务,旨在以某种方式将您的应用程序放置在系统上,使用户唯一需要做的就是下载容器并运行它。Docker容器旨在使应用程序在所有环境中具有通用性和通用性,并且是一种将所需依赖项全部打包到一个地方的好方法,因此这并不麻烦。使用Docker容器,用户可以开发应用程序,将其打包并分发到可以运行docker守护程序本身的任何平台。

公平的是,您将Docker视为虚拟机。它可以容纳多个操作系统,根据需要对数据进行分区,那么为什么不将其作为VM?答案是因为docker在虚拟机管理程序内部的操作位置。容器提供的全部是运行应用程序所需的必要组件,仅此而已。

如果您想共享您的应用程序,那么您想要遵循的目标就是通过docker hub进行共享。已经安装并正在运行docker守护程序的用户只需执行a docker pull IMAGE_NAME和a docker run IMAGE_NAME即可启动其新安装的容器。Docker的安装因计算机而异,因此最终用户需要正确安装它。

有泊坞窗的基础;对所有性质的应用程序的通用使用和版本控制。如果您还没有阅读过,请尝试访问docker网站以获取更多信息!


非常感谢您的出色解释。因此,所有与我共享我的源代码的人都只需要为自己的操作系统安装合适的Docker而已?如果我在Ubuntu机器上开发一个可执行文件,并在容器中包含所有必需的共享库依赖关系,该怎么办?如果该可执行文件安装了docker,是否可以在Windows计算机上运行?
smilebuddha '16

@smilingbuddha:基于码头工人声称要做的事和我所看到的,是的。Docker将在其包含的环境中运行该可执行文件。如果您正在开发自己的容器,它将包含您要求容器包含的所有软件包和依赖项。您只需要确保几件事即可。只记得; 您始终需要您的可执行应用程序的路径。除此之外,您甚至可以从容器内部构建和操作自己认为合适的容器!
Jouster500 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.