注意:也发布在Security StackExchange上,因为此问题涉及安全方面(很抱歉,交叉发布)。

我正在评估Docker映像的开发和生产设置。

当我研究如何在Docker中做某事时,常常会找到包含作者自己的Docker映像的答案。对我来说,这不合适,因为这阻碍了解决方案的透明性以及该作者对未来维护的依赖的不确定性。这两个潜在的问题都涉及安全性。这些非官方的图像都在原始图像上。 Docker镜像已构建。但是,这对于真正确定(如果可能的话)Docker镜像的内容来说是“不便”或摩擦的不便。

#1 楼

与信息安全的大多数元素一样,可用性和安全性之间存在平衡。可用性的提高通常会导致安全性下降,反之亦然。

作为一个思想实验...擦拭硬盘驱动器,使其通过粉碎机,然后熔化所有组件,以确保安全。它还使0%可用。


Docker Hub也不例外,人们希望以共同的利益访问这些图像,但要以图像的可追溯性和出处为代价。幸运的是,有几种工具,例如JFrog Artifactory和Sonatype Nexus Lifecycle,使您可以将治理应用于任何开源存储库(即Docker Hub,Nuget,NPM等)。 Docker Hub出错了,其他站点正确了,即NPM,正在提供有关生成映像的源存储库的清晰信息,我怀疑这是由于Docker映像与生成它们的源代码分离的缘故。 />

评论


+1支持(再次)感谢Richard Slater。 “我认为Docker Hub出现了问题,而其他站点也取得了进展,即NPM,这方面正在提供有关生成映像的源存储库的明确信息,我怀疑这是由于Docker映像与源代码的分离性所致。产生它们。” -敏锐的观察。您是否认为Docker中的间接派生是设计使然还是疏忽大意?除了提到的工具链接之外,这里还有反向工程工具:stackoverflow.com/questions/48228275/…

–therobyouknow
19-10-21在15:17

我认为这可能是npm软件包的一个因素,通常正是它所基于的GitHub存储库中的内容。而Dockerfile通常会通过FROM语句或Dockerfile中的apt-get语句从Internet上的其他地方常规收集软件来构建映像。

–Richard Slater
19-10-21在15:20

这两个答案都重申了我始终使用官方图片的个人政策。而且,如果我要在线为其他人发布解决方案,我将始终以原始官方图像为基础,并为人们提供github存储库以下载以立即使用我的解决方案。我将成为解决方案的一部分。与其给人们带来希望解决问题的希望,不如让他们发现它使用的是自定义图像,该图像不透明且笨拙,因此即使进行反向工程也是如此。谢谢。

–therobyouknow
19-10-21在17:46

这就是为什么lando.dev非常令人鼓舞的原因-查看代码-Dockerfile是透明的,并使用来自hub.docker.com的正式Dockerfile的基本原语作为其支持的各种语言。另外,lando.dev是免费的,完全开放的源代码,没有明显的“药品经销商” / freemium / starter /“社区版”样式路线图到付费版本。因此,我愿意为此捐款。

–therobyouknow
20年1月2日,11:46

#2 楼

此功能是使Docker Hub出色的原因之一。例如,您想使用一个数据库,但是有一个特定的配置。 Docker Hub将允许您拉出正式映像(例如MySQL),进行更改(例如更改数据库运行的默认位置,添加计划任务)并推送新映像。在此示例中,我现在可以将自定义映像用作开发的基础,并且每次我拉动时都不必编写脚本或手动运行这些配置。

存在安全性问题,因为您现在有所不同从官方图片。除非您使用新的官方映像进行重建并推送,否则将来的官方映像更新将不会更新。使用上面的示例,我可以轻松地决定要切换到MariaDB作为我的基本映像,并由于该标签而将其推入使人联想到MySQL的位置。因此,我希望尽可能从官方图片入手。

评论


+1感谢@Wesley Rolnick,与Richard Slater一样,您提供Docker Hub非官方映像的优缺点。从您那里获得很好的阅读,因为您拥护Docker Hub托管非官方镜像以及官方镜像的便利性概念,然后通过概述安全性方面的缺陷来批评这种拥护。谢谢。

–therobyouknow
19-10-21在17:43

关于标签,为什么默认标签称为最新标签而不是默认标签?最新本身也有点误导,因为未指定标签的图像完全不必反映它是最新图像(或继承自“最新”图像)。

–PdC
19-10-25在19:14



@PdC:您可以打开一个问题,以便其他人有机会回答吗?

–韦斯利·罗尼克(Wesley Rolnick)
19-10-28在17:09