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

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

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

当前状态

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

问题:RHEL 升级/维护

定期的操作系统维护会破坏环境,有时是 Tomcat,有时是 Java,但主要是本地用户帐户和权限,迫使我们调用 SA 来解决问题;这是一个主要的 PITA。

问题

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

这就是我对 docker 的理解,如果没有意义的话,请原谅我的无知:-D

答案1

我是一名 VMware vSphere 管理员,我认为 Docker 既是一种威胁(如果容器取代虚拟机,我可能会丢掉工作),也是一种机遇(它是一种虚拟化技术毕竟如此也许我们可以将其作为我们产品组合的一部分并将其作为服务提供)。

但是对于你的问题:是的,docker 容器将成为主要的部署工具。

但请考虑一下这意味着什么。Java、Tomcat 等更新是有原因的,通常是为了修复严重的安全问题。如果你把应用程序的所有依赖项都放在一个 docker 容器中你负责所有安全更新。目前,您的运营团队负责为 Java、Tomcat 和所有这些东西部署安全补丁。使用 docker必须使用更新重建容器(不是那么难,但你必须这样做)并重新部署它。因此,你最终会有一个停机时间:停止并删除旧容器,部署并启动新容器。

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

相关内容