千家信息网

如何利用Dockerfile制作java运行环境的镜像

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章主要介绍如何利用Dockerfile制作java运行环境的镜像,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!当前用到的环境是:Centos 7.5docker-ce 1
千家信息网最后更新 2024年11月30日如何利用Dockerfile制作java运行环境的镜像

这篇文章主要介绍如何利用Dockerfile制作java运行环境的镜像,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

当前用到的环境是:

  • Centos 7.5

  • docker-ce 18.06.1-ce

1、先用centos7.5.1804的基础镜像把一些运行需要的环境装好

在/app目录下创建相对应的文件目录

[root@node2 /app/]# mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pv[root@node2 /app]# cd dockerfile/system/centos/[root@node2 /app/dockerfile/system/centos]# mkdir centos-7.5-base[root@node2 /app/dockerfile/system/centos]# cd centos-7.5-base

创建一个Dockerfile文件

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim Dockerfile #Nginx Base ImageFROM centos:7.5.1804LABEL maintaier "mr.luo "RUN yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop

创建一个用于直接docker build脚本后续直接执行脚本即可

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim build-command.sh #!/bin/bashdocker build -t 172.20.7.50/baseimages/centos-base:7.5.1804 .

执行脚本创建新镜像

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#bash build-command.sh Sending build context to Docker daemon 3.072kBStep 1/3 : FROM centos:7.5.1804---> 76d6bc25b8a5Step 2/3 : LABEL maintaier 'mr.luo@dklwj.com'---> Using cache---> 05ccd970d71dStep 3/3 : RUN yum install -y vim wget  pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop---> Using cache---> 73d683a54877Successfully built 73d683a54877Successfully tagged 172.20.7.50/baseimages/centos-base:7.5.1804

2、利用制作好的基础环境镜像制作jdk的镜像

从centos-7.5-base退出来在当前目录创建一个jdk1.8的目录.

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]# cd ..[root@node2 /app/dockerfile/system/centos]# mkdir jdk1.8[root@node2 /app/dockerfile/system/centos]# cd jdk1.8/

创建Dockerfile

[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim Dockerfile FROM 172.20.7.50/baseimages/centos-base:7.5.1804LABEL maintainer "mr.luo "ADD jdk-8u162-linux-x64.tar.gz /usr/local/src/RUN ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdkADD profile /etc/profileENV JAVA_HOME /usr/local/jdkENV JRE_HOME $JAVA_HOME/jreENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/ENV PATH $PATH:$JAVA_HOME/binRUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone

上传jdk包到当前目录下:

复制/etc/profile文件到当前目录

[root@node2 /app/dockerfile/system/centos/jdk1.8]#cp profile /etc/profile

在profile最后添加jdk的环境变量

[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim profile export JAVA_HOME=/usr/local/jdkexport TOMCAT_HOME=/apps/tomcatexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATHexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

创建docker build的shell脚本

[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim build-command.sh #!/bin/bash#docker build -t 172.20.7.50/baseimages/centos7.5-jdk:8.162 .

开始制作镜像

[root@node2 /app/dockerfile/system/centos/jdk1.8]#bash build-command.sh   Sending build context to Docker daemon 189.8MB  Step 1/10 : FROM 172.20.7.50/baseimages/centos-base:7.5.1804   ---> 73d683a54877  Step 2/10 : LABEL maintainer "mr.luo "   ---> Running in 65604dd1f392  Removing intermediate container 65604dd1f392   ---> c4720603ce38  Step 3/10 : ADD jdk-8u162-linux-x64.tar.gz /usr/local/src/   ---> bc98adffe1b4  Step 4/10 : RUN ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdk   ---> Running in df5a6f67f9fd  Removing intermediate container df5a6f67f9fd   ---> 0ae1af0416c6  Step 5/10 : ADD profile /etc/profile   ---> eee23a69c0c8  Step 6/10 : ENV JAVA_HOME /usr/local/jdk   ---> Running in edbef8563e83  Removing intermediate container edbef8563e83   ---> 5f783f642054  Step 7/10 : ENV JRE_HOME $JAVA_HOME/jre   ---> Running in fa0e5f08e732  Removing intermediate container fa0e5f08e732   ---> 28a4d31463d4  Step 8/10 : ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/   ---> Running in 3c4ebb04ac62  Removing intermediate container 3c4ebb04ac62   ---> 245f2dd82d52  Step 9/10 : ENV PATH $PATH:$JAVA_HOME/bin   ---> Running in 4f5e6093f0a9  Removing intermediate container 4f5e6093f0a9   ---> 5be0e6261eea  Step 10/10 : RUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone   ---> Running in 52d8cb8463a8  Removing intermediate container 52d8cb8463a8   ---> 9fb867ae8c39  Successfully built 9fb867ae8c39  Successfully tagged 172.20.7.50/baseimages/centos7.5-jdk:8.162

查看当前目录下的文件

[root@node2 /app/dockerfile/system/centos/jdk1.8]#lsbuild-command.sh Dockerfile jdk-8u162-linux-x64.tar.gz profile

检查制作好的镜像是否能正常使用

[root@node2 /app/dockerfile/system/centos/jdk1.8]#docker run -it --rm 172.20.7.50/baseimages/centos7.5-jdk:8.162 bash[root@919844b164dc /]# java -version java version "1.8.0_162"Java(TM) SE Runtime Environment (build 1.8.0_162-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)[root@919844b164dc /]# dateThu Nov 22 21:17:49 CST 2018[root@919844b164dc /]# exitexit

3、做Tomcat的镜像

进入之前建好的/app/dockerfile/web/tomcat下,创建一个tomcat-base目录

[root@node2 ~]# cd /app/dockerfile/web/tomcat [root@node2 /app/dockerfile/web/tomcat]#mkdir tomcat-base

创建Dockerfile

[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#vim Dockerfile FROM 172.20.7.50/baseimages/centos7.5-jdk:8.162LABEL maintainer "mr.luo "RUN mkdir /appsADD apache-tomcat-8.5.33.tar.gz /appsRUN ln -s /apps/apache-tomcat-8.5.33 /apps/tomcat

创建docker build脚本

[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#vim build-command.sh #!/bin/bashdocker build -t 172.20.7.50/baseimages/centos-tomcat:8.5.33 .

执行创建镜像文件:

[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#bash build-command.sh   Sending build context to Docker daemon 9.625MB  Step 1/5 : FROM 172.20.7.50/baseimages/centos7.5-jdk:8.162   ---> 9fb867ae8c39  Step 2/5 : LABEL maintainer "mr.luo "   ---> Running in 9ce6fc4d2850  Removing intermediate container 9ce6fc4d2850   ---> b68755061b28  Step 3/5 : RUN mkdir /apps   ---> Running in b483c6b127f2  Removing intermediate container b483c6b127f2   ---> 605c1a048a5f  Step 4/5 : ADD apache-tomcat-8.5.33.tar.gz /apps   ---> 3c44f96ed41c  Step 5/5 : RUN ln -s /apps/apache-tomcat-8.5.33 /apps/tomcat   ---> Running in 4c1aa39a6c92  Removing intermediate container 4c1aa39a6c92   ---> 9b3bc4f58cc9  Successfully built 9b3bc4f58cc9  Successfully tagged 172.20.7.50/baseimages/centos-tomcat:8.5.33

利用创建好的镜像起一个容器检查下是否成功制作好,启动时加上-p暴露端口,在物理机上测试下

[root@node2 /app/dockerfile/web/tomcat/tomcat-base]#docker run -it -p 8802:8080 172.20.7.50/baseimages/centos-tomcat:8.5.33 bash  [root@917b2c2262a3 /]# cd /apps/[root@917b2c2262a3 apps]# lltotal 0drwxr-xr-x 9 root root 220 Nov 22 22:08 apache-tomcat-8.5.33lrwxrwxrwx 1 root root 26 Nov 22 22:08 tomcat -> /apps/apache-tomcat-8.5.33[root@917b2c2262a3 apps]# ./tomcat/bin/catalina.sh startUsing CATALINA_BASE:  /apps/tomcatUsing CATALINA_HOME:  /apps/tomcatUsing CATALINA_TMPDIR: /apps/tomcat/tempUsing JRE_HOME:    /usr/local/jdk/jreUsing CLASSPATH:    /apps/tomcat/bin/bootstrap.jar:/apps/tomcat/bin/tomcat-juli.jarTomcat started.

在客户端用浏览器测试

以上是"如何利用Dockerfile制作java运行环境的镜像"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

镜像 目录 制作 环境 文件 脚本 运行 内容 基础 篇文章 建好 检查 测试 成功 价值 兴趣 变量 客户 客户端 容器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全学习的软件有哪些 怎样找回服务器管理员密码 网络技术的内环控制功率 四川电商软件开发服务 黑海网络技术处可靠吗 泉州营销服务管理软件开发 网络安全最危险的漏洞 网络安全行业的重要性 药融云数据库国家药品集中采购 穿越火线菜鸟服务器 网络技术做什么的 浙江办公系统软件开发哪家好 云服务器运营管理唯一 河北嵌入式软件开发费用 国产服务器是哪些 网络安全警告书 京东云用的什么数据库 找网络技术总监运营总监 登录本地账户未提示安全服务器 公务员和软件开发有关岗位 武汉国家网络安全人才与创新 宝塔服务器怎么买 云服务器需要下载吗 阿里云服务器 挂载磁盘 我的世界斗罗服务器私服 双线服务器租用有什么好的介绍 网络安全和信息化软件排行 江苏推广网络技术费用是多少 sql 数据库服务器名称 网络安全数字经济概念股雪球
0