为什么有这么多的docker图像有漏洞?

我已经花了一些时间在hub.docker.com上探索docker hub,我对我想在我的项目中使用的官方图像中的一些漏洞感到震惊。

至于现在(2/27/2017)

  • Nginx: https : //hub.docker.com/r/library/nginx/tags/ – 没有图像没有漏洞
  • Ubuntu: https : //hub.docker.com/r/library/ubuntu/tags/ – 没有图像没有漏洞
  • MySql: https : //hub.docker.com/r/library/mysql/tags/ – 没有图像没有漏洞
  • Redis: https : //hub.docker.com/r/library/redis/tags/ – 相同
  • Postgres: https : //hub.docker.com/r/library/postgres/tags/ – 相同
  • Java: https : //hub.docker.com/r/library/java/tags/ – 相同
  • Node.js: https : //hub.docker.com/r/library/node/tags/ – 只有6个图像没有已知的漏洞(我觉得幸运find他们)

所以,我的问题是:

1)如此巨大的脆弱图像的原因是什么?

2)如何决定何时可以安全地使用这种易受攻击的(根据Docker Security Scanning)映像还是等待官方修复更好?

重要更新:似乎您需要在Docker Hub上login才能看到“此映像有漏洞”消息。 下面是Nginx的回放截图:

Docker集线器nginx存储库标签页面

根据https://docs.docker.com/docker-cloud/builds/image-scan/

扫描将每个组件的SHA与通用漏洞披露(CVE®)数据库进行比较

这意味着漏洞可能不在图像本身,而是在组件上(例如已知的OpenJDK漏洞)。 这可能是因为组件的版本是旧的并且还没有被更新,或者该漏洞是已知的,但在最新版本中尚未被修复。

不过,您可能不会使用具有漏洞的function。 可能最好的办法是在开发时检查您正在使用的组件中已知的漏洞,并确保您没有使用任何具有未修补漏洞的function。