【发布时间】:2018-07-07 15:09:08
【问题描述】:
如果我理解正确,Docker 容器可以封装所有依赖项,并允许以非常可移植的方式分发可执行文件。
而且(如果我理解正确的话),它们与不在容器内的其他应用程序隔离。
所以,我的问题是:如果我提供一个 Docker 映像来封装 C++ 库(以及库本身)的所有依赖项,普通(非容器化)应用程序是否能够使用该库? 如果没有,如果我也为这些应用程序创建 Docker 映像怎么办?
(我想到的是一个开源的、科学的 C++ 库,它依赖于其他几个大型且有时不那么常见的库。其中一个是例如 Boost,它需要是最新版本。其他Linux 发行版中通常不提供依赖项。)
【问题讨论】:
-
这是一个有点宽泛的主题。但简而言之,Docker 被用作打包自包含的进程(或在某些情况下,数据量)的一种方式。它显然不适合打包库,尽管我认为有可能颠覆它。
-
让我补充一下,我已经看到 Docker 用于分发例如OpenFOAM。 OpenFOAM 既是可执行文件的集合,也是库。所以我想知道我是否也可以通过这种方式使用库。我将把问题留待更长时间。
标签: c++ docker package shared-libraries software-distribution