Docker镜像生命周期为基于Java的应用程序

我正在尝试更加熟悉docker,我想知道使用docker作为服务运行java-webapp的最佳实践和生命周期。

如果我的图像已经运行tomcat,或者我应该启动tomcat运行图像?

我将使用数据量来保存存储。 那个容器的状态是什么? 一直运行,或者只是有一个容器处于停止状态。

如果我的应用程序容器停止,如果我重新启动会发生什么? 它会恢复到停止的状态,还是从顶端重新启动?

最简单的方法是设置一个包含tomcat服务器二进制文件的容器。 还可以将自定义的java-webapp复制到tomcat服务器的webapps文件夹中,以便每次启动tomcat时自动加载。 而对于这个容器,你可以指定入口点作为tomcat bin文件夹中可用的startup.sh脚本。 所以每次用run命令启动Docker容器时,tomcat服务器都会启动,然后加载你的java-webapp。

如果你想让tomcat始终运行,那么容器应该处于运行状态。 请注意,在tomcat中作为自定义应用程序的一部分进行的任何更改或对tomcatconfiguration的任何更改,都需要使用docker commit将容器的状态保存为新映像或覆盖现有映像。 否则,如果容器停止,所有的改变将会丢失,并且在容器build成时回到原来的configuration。 所以是的,如果容器停止,它将从顶部干净的重启,因为在tomcat服务器将再次启动并加载java-webapp。