如何用Dockerfile制作java运行环境的镜像
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇"如何用Dockerfile制作java运行环境的镜像"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2025年02月03日如何用Dockerfile制作java运行环境的镜像
这篇"如何用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安全错误
数据库的锁怎样保障安全
苏州营销网络技术怎么样
588服务器
维护网络安全的职业叫什么
办公楼网络安全管理制度
易语言 服务器管理
软件开发模式
60级怀旧服最友好的服务器
数据库加密和数据加密存储
股票软件开发公司被抓
美股上市网络安全涉稳审查
集线器属于网络安全设备吗
分布式数据库开发实例
豪杰解霸下载软件开发
软件开发转行项目
数据库update语句
济南微智网络技术有限公司
青岛拓宇数字网络技术
千亿级国家网络安全产业园
中职数据库查询
网络安全培训的名校
湖州企业软件开发项目
pl sql与数据库
手机浏览网址大数据库
网络安全类考研考哪些
数据库CLEAR语句的作用
csgo连接任意官服服务器失败
化疗药耐药基因数据库
密云区口碑好的网络技术咨询
太原商场触摸互动软件开发公司
软件开发青岛工资