如何使用Docker将应用程序与底层操作系统更改隔离开来

我不是docker用户,只是想知道这是否是docker工人的准确用例。

当前状态

我们在RHEL / VMware上部署自定义Java应用程序。 要正常运行,应用程序依赖于本地Java运行时,Tomcat,本地用户帐户,启动/停止脚本和环境设置,所有这些都必须在机器上提前安装和configuration。

问题:RHEL升级/维护

周期性的操作系统维护破坏了环境,有时甚至是Tomcat,其他时候是Java,但大多数是本地用户帐户和权限,迫使我们调用SA来解决问题; 这是一个主要的PITA。

我们是否可以使用docker容器封装我们的Java应用程序及其依赖项(Java运行时,Tomcat,用户帐户,本地设置等),这样我们就可以在未来维护底层操作系统了? 在这种情况下,Docker容器(而不是Java WAR / JAR文件)成为主要的部署工件,是否正确?

这是我对docker的理解,如果没有道理,请原谅无知: – D

我正在做一名VMware vSpherepipe理员,并将Docker视为威胁(如果容器取代虚拟机,可能会花费我的工作)和一个机会(毕竟,这是一个虚拟化技术 ,所以也许我们可以把它作为我们的组合并作为服务交付 )。

但是,对于你的问题:是的,docker集装箱将成为主要的部署工件。

但请考虑这是什么意思。 Java,Tomcat等更新是有原因的,通常是为了解决严重的安全问题。 如果将应用程序的所有依赖关系放在Docker容器中,则需要对所有安全更新负责 。 目前,您的运营团队负责将安全补丁部署到Java,Tomcat和所有这些东西。 随着docker, 必须重build容器的更新(并不难,但你必须这样做),并重新部署它。 因此,您将终止一个停机时间:停止并删除旧的容器,部署并启动新的容器。

当然,您可以忽略任何安全更新并拒绝推出这些补丁…我不知道您的IT安全会对此说些什么。