接上一篇,上篇java
的openjdk镜像为openjdk:8-jdk-alpine
, 只有105MB,这一次我们换用官方镜像openjdk:8
,镜像大小为:145MB, 看起来也不大(我司服务尚未容器化,上头为了“减少风险”,使用与生产环境相同的centos系统作为基础镜像,镜像大小接近600M, 在此按下不表)
Dockerfile稍有变动
FROM openjdk:8
ADD /target/demo-0.0.1-SNAPSHOT.jar app.jar
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
制作好镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-shanghai.aliyuncs.com/testops/hw-java-debian latest de780920b05a 20 minutes ago 505MB
镜像大小505M, so big.
运行之
image.png
看一看资源占用情况
内存战用为:266.9MiB ,与
openjdk:8-jdk-alpine
版本的264.2MiB几乎无差别,以在下的实验环境对比可知:openjdk
镜像对java服务的性能影响不大,不过服务镜像一个505MB, 一个122MB, 在服务部署过程上,第一次下载大镜像时,相对就比较吃力了,而且alpine镜像够小,环境更纯净,攻击面够小,总结起来就:短小精悍,在服务较多时比较,优势明显,不过从传统部署到容器化的过程中,更多人还是喜欢使用openjdk:8
这类大尺寸镜像,由于理解上的差异,习惯性把容器当虚拟机使用,唉,总得有一个观念改变和适应的过程不是。我个人还是更喜欢
alpine
这类小一点的镜像,体验上更好一些,虽然客观来看,现在还看不出明显的性能差异,当然这也是推广中比较头疼的一点。ps: 之前我一直认为
alpine
制作出的镜像性能占优,还是得要数据说话
网友评论