【问题标题】:Can I distribute a C++ library with dependencies as a Docker image?我可以将具有依赖项的 C++ 库作为 Docker 映像分发吗?
【发布时间】:2018-07-07 15:09:08
【问题描述】:

如果我理解正确,Docker 容器可以封装所有依赖项,并允许以非常可移植的方式分发可执行文件。

而且(如果我理解正确的话),它们与不在容器内的其他应用程序隔离

所以,我的问题是:如果我提供一个 Docker 映像来封装 C++ 库(以及库本身)的所有依赖项,普通(非容器化)应用程序是否能够使用该库? 如果没有,如果我也为这些应用程序创建 Docker 映像怎么办?

(我想到的是一个开源的、科学的 C++ 库,它依赖于其他几个大型且有时不那么常见的库。其中一个是例如 Boost,它需要是最新版本。其他Linux 发行版中通常不提供依赖项。)

【问题讨论】:

  • 这是一个有点宽泛的主题。但简而言之,Docker 被用作打包自包含的进程(或在某些情况下,数据量)的一种方式。它显然不适合打包库,尽管我认为有可能颠覆它。
  • 让我补充一下,我已经看到 Docker 用于分发例如OpenFOAM。 OpenFOAM 既是可执行文件的集合,也是库。所以我想知道我是否也可以通过这种方式使用库。我将把问题留待更长时间。

标签: c++ docker package shared-libraries software-distribution


【解决方案1】:

没有。

如果您将库作为 Docker 容器分发,则只有容器内的应用程序才能使用它(除非有人费心将您的库从容器中取出并正常使用)。

此外,由于 Docker 容器无法组合,您将无法在同一个程序中使用两个“库容器”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多