如果存在使用特定基础映像的 docker 映像作为容器运行,并且基础映像有新的安全升级。将该安全补丁应用于 docker 映像的最佳实践是什么?
还如何知道是否有可用于基本映像的安全补丁。
假设您有一个基于名为"Base:latest"的映像的Dockerfile,并且您已经构建了一个名为"MyImage:latest:latest"的映像。
如果"Base:latest"已使用安全更新进行更新,则需要重建"MyImage:latest"。
容器是映像实例,因此如果需要需要在容器中反映的安全更新,则应基于"MyImage:latest"映像重新创建容器。
请注意,你不希望对生产中的基础映像使用"latest"标记,因为您将无法重现相同的已部署环境,因此最佳做法是使用特定版本标记,如"1.0"。如果有可用的更新,您需要将 Dockerfile 从"Base:1.0"更新为"Base:1.1"。
因此,如果您的映像基于另一个映像,并且您希望在不等待基础映像的新版本和更新版本的情况下运行安全更新,则可以在 Dockerfile 中运行安全更新命令,并确保偶尔重建映像并重新创建容器。
您可以使用 Watchtower 等工具自动执行此过程,方法是定期自动重建映像,然后重新创建容器。
另一种选择是在容器级别运行自动更新,可能通过使用每天运行的脚本,但应考虑对正在运行的进程负载(网络、CPU 等(的影响。