如何利用Dockerfile制作java运行环境的镜像
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍如何利用Dockerfile制作java运行环境的镜像,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!当前用到的环境是:Centos 7.5docker-ce 1
千家信息网最后更新 2025年02月02日如何利用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安全错误
数据库的锁怎样保障安全
澳兴数据库
gis软件开发大赛的价值
小米软件开发笔试题2019
海鹰网络技术钉钉直播下载
达梦数据库启动顺序
守护校园网络安全手抄报
云服务器爆品秒杀
秋芒服务器
泰拉瑞亚怎么管理服务器
软件开发人员创业怎么样
北京新一代网络技术产品介绍
山东华为服务器续保一年多少钱
深圳二手服务器配件回收
鹤壁学软件开发
奥运会网络安全整改报告
删除质疑数据库
临猗天气预报软件开发
服务器硬盘录像机故障
数据库修改字段名称6
mssql数据库在线管理
1u和2u服务器什么区别
网络安全取证软件
gis软件开发大赛的价值
代理服务器监听端口
张店供应链erp软件开发公司
盘锦网络安全知识答题
数据库技术有哪些职位
网络安全部部长
cad中的模块数据库
ssh连接数据库