容器和主机之间的库共享有多普遍?

时间:2019-06-12 06:52:21

标签: docker shared-libraries

从安全的角度来看,我正在研究容器之间的共享库。

在许多安全资源中,讨论了共享库方案,其中讨论了容器共享依赖项引用(即同一文件)的情况,我可以提出两种方案:

  1. 事实讨论过的场景-一些lib目录从主机安装到容器上
  2. 发明的场景-为不同的容器(不同的服务,同一容器的复制集或两者)创建一个共享卷,并使用在所有容器之间共享的库进行填充。

尽管进行了讨论,但我在现实世界中找不到这种行为,所以问题是:这种方法有多普遍?

引用使用此技术的官方已知图像会很好!

1 个答案:

答案 0 :(得分:0)

通常根本不认为这是最佳做法。单个Docker映像旨在实现自包含,并包含其需要运行的所有应用程序代码和库。除了这些问题之外,我从未遇到过建议使用卷将各种代码注入容器的Docker镜像。

(一个例外是node图像;关于node_modules目录使用匿名卷经常有这样的问题[TL; DR:package.json中的更改永远不会更新卷]即便如此,这还是试图避免与其他上下文共享库树。)

一种有用的技术是构建一个包含一些库的中间基础映像,然后在此基础上构建一个应用程序。从机械的角度来看,对于ubuntu:18.04映像的特定版本,我认为基于该映像的所有其他映像都使用物理上相同的libc.so.6,但是从Docker的角度来看,这是实现细节。 / p>