我有一个Windows Server 2016 Docker容器,我想对其应用a specific KB update。我想知道如何以编程方式进行操作吗?
您是说Windows Server 2016在Docker容器中运行?
如果是,有多种方法可以执行此操作,选择方法取决于任务,通常您需要persistent安装KB更新。将Docker客户端与docker exec
(https://docs.docker.com/engine/docker-overview/#the-docker-client,How do I get into a Docker container's shell?)结合使用并运行wmic qfe
时,可以显示所有已安装的更新。WinServer2016中从命令行安装KB更新的常见方法是wusa
或[C0 ]工具(dism
,https://ss64.com/nt/wusa.html),要使安装一致,您必须运行https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-operating-system-package-servicing-command-line-options才能使更改持久化。如果docker exec
或docker commit
引发错误,则必须修复docker或内部窗口的安全策略(例如wusa
)!这不是进行的最佳方法!最好使用dism
来构建自己的dockerimage,甚至最好使用gitlab(https://michlstechblog.info/blog/windows-cumulative-update-cannot-be-installed-on-windows-10/,持续集成)来构建。优秀文章docker build
中对此进行了解释。如果您必须在多个docker容器上频繁执行类似的任务(即应用KB更新),最好使用Swarm,Mesos,Kubernetes或Ouroboros https://about.gitlab.com/]等容器工具
也比照http://www.admin-magazine.com/Articles/Keeping-the-software-in-Docker-containers-up-to-date ...
懒惰的方法是删除旧图像并拉出更新的图像(如果可用):https://medium.com/better-programming/automatically-update-docker-containers-f2ccc79f4313