docker镜像运行在低版本系统

docker镜像运行在低版本系统,第1张

docker镜像可以运行在低版本系统。

因为docker镜像的运行不依赖外部 *** 作系统,只要支持docker就没有问题。所以docker镜像可以运行在低版本系统。

Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。

在第4节讲解了tomcat镜像的制作与优化,在实际 *** 作过程中其实碰到了不少的问题,结合工作中碰到的问题,讲讲自己在遇到这些问题过程中的调试方法,如果有更好的方法也请各位留言补充。

tomcat的启动命令有很多种,在镜像的启动过程中,我最早使用了catalina.sh start 命令,这个命令在linux机器上是可以正常启动的,那为何在镜像中定义entrypoint的时候就不行呢,原来这个命令是以后台的方式运行的,docker就会变成Exit(0) 状态,就自动退出了。docker镜像需要一个前台的进程一直运行才能保证镜像不会退出,那么这时候就需要运行catalina.sh run了,它会让tomcat镜像一直在前台运行。(打个比方,如果你用虚拟机运行,运行这个命令后,命令行无法输入其他命令,只能ctrl+c终止tomcat的运行)

这一招是我目前用来调试最好用的一招,如有更好的招式烦请留言。tomcat启动一开始遇到各种千奇百怪的问题,前面那个启动的问题还好很多人碰到,搜索下就能解决。比如碰到permission deny,文件不存在这种日志提示问题,有什么好的办法排查呢。最直观的方法就是进入镜像里面去看看文件的权限、文件的路径是否存在。

Docker提供了这样的命令,如下

这里-it 和 /bin/bash 就是以终端命令的方式运行镜像,这样跟SSH到远程Linux机器上效果一样,可以查看文件的权限和文件的路径了。这里增加了--rm,这个参数的作用是退出这个镜像后,容器也会自动删除,方便临时运行镜像。

这里由于我制作的tomcat镜像包含最后的entrypoint命令(由于这个命令最早是有问题的),直接运行上面的命令会报错,导致无法进入容器内部。因此这里建议 调试的时候把entrypoint,cmd这里命令先注释掉重新生成镜像,使用上面的命令进入容器内部调试完成之后再开启entrypoint,cmd


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8100920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存