从安全的角度来看,我正在研究容器之间的共享库。
在许多安全资源中,讨论了共享库方案,其中讨论了容器共享依赖项引用(即同一文件)的情况,我可以提出两种方案:
尽管进行了讨论,但我在现实世界中找不到这种行为,所以问题是:这种方法有多普遍?
引用使用此技术的官方已知图像会很好!
答案 0 :(得分:0)
通常根本不认为这是最佳做法。单个Docker映像旨在实现自包含,并包含其需要运行的所有应用程序代码和库。除了这些问题之外,我从未遇到过建议使用卷将各种代码注入容器的Docker镜像。
(一个例外是node
图像;关于node_modules
目录使用匿名卷经常有这样的问题[TL; DR:package.json
中的更改永远不会更新卷]即便如此,这还是试图避免与其他上下文共享库树。)
一种有用的技术是构建一个包含一些库的中间基础映像,然后在此基础上构建一个应用程序。从机械的角度来看,对于ubuntu:18.04
映像的特定版本,我认为基于该映像的所有其他映像都使用物理上相同的libc.so.6
,但是从Docker的角度来看,这是实现细节。 / p>