linux cpu占用率如何看
313
2022-10-21
Docker容器——创建一个自定义jdk1.8镜像
Docker容器——创建一个自定义jdk1.8镜像
背景
日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。
同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
开发环境
系统:Ubuntu工具:docker
内容
废话不多说直接进入主题:
1、在宿主机中创建我们本次使用的目录,并进入其中
mkdir dockerfile_create && cd dockerfile_create/mkdir docker_jdk && cd docker_jdk/
2、进行下载jdk1.8,存放到我们刚才创建好的docker_jdk目录下,同时在该路径下开始第三步。
访问提取码: nsjw
3、进行编写Dockerfile
vim Dockerfile
文件内容如下
# 基础镜像文件FROM centos:latest# 本次镜像创建人MAINTAINER cnhuashao# 进入工作目录WORKDIR /opt# 创建一个我们需要的目录RUN mkdir /opt/java# 将我们准备好的软件包放到刚创建的文件夹中ADD jdk-8u202-linux-x64.tar.gz /opt/java/ # 设置环境变量ENV JAVA_HOME /opt/java/jdk1.8.0_202ENV JRE_HOME $JAVA_HOME/jreENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATHENV PATH $JAVA_HOME/bin:$PATH
注意上面的Dockerfile是固定名称,不能随意修改。否则就会报这个错误了
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/cnhuashao/dockerfile_create/docker_jdk/Dockerfile: no such file or directory
4、基于上面的文件开始编译
docker build -t='centos_jdk' .
注意命令后面的[.],表示当前目录下寻找,-t是指定一个镜像名字,可以省略
cnhuashao@cnhuashao:~/dockerfile_create/docker_jdk$ docker build -t='centos_jdk' .Sending build context to Docker daemon 194MBStep 1/9 : FROM centos:latest ---> 5d0da3dc9764Step 2/9 : MAINTAINER cnhuashao ---> Running in 598c894822ddRemoving intermediate container 598c894822dd ---> 24bd4c5e0cb9Step 3/9 : WORKDIR /opt ---> Running in 8ba6c094071aRemoving intermediate container 8ba6c094071a ---> 0627b2aa523eStep 4/9 : RUN mkdir /opt/java ---> Running in e26cd5ab1936Removing intermediate container e26cd5ab1936 ---> 55f75b7c63c8Step 5/9 : ADD jdk-8u202-linux-x64.tar.gz /opt/java/ ---> f4de75816469Step 6/9 : ENV JAVA_HOME /opt/java/jdk1.8.0_202 ---> Running in bfe5b73e056fRemoving intermediate container bfe5b73e056f ---> ef7bc968af7dStep 7/9 : ENV JRE_HOME $JAVA_HOME/jre ---> Running in 289ec0ed9b4cRemoving intermediate container 289ec0ed9b4c ---> e338d2e42572Step 8/9 : ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ---> Running in c31b1a27d5c9Removing intermediate container c31b1a27d5c9 ---> a38976712316Step 9/9 : ENV PATH $JAVA_HOME/bin:$PATH ---> Running in fd49d2cb3ae3Removing intermediate container fd49d2cb3ae3 ---> c62ad4394489Successfully built c62ad4394489Successfully tagged centos_jdk:latest
我们的镜像中使用了centos,当本地没有时将会自动根据预配置(默认配置)的远程仓库拉取。而我们在Dockerfile中使用的jdk包在编译过程中将自动被解压到指定目录下。
5、创建一个容器并进入测试
cnhuashao@cnhuashao:~/dockerfile_create/docker_jdk$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEcentos_jdk latest c62ad4394489 2 minutes ago 634MBcnhuashao@cnhuashao:~/dockerfile_create/docker_jdk$ docker run -it centos_jdk /bin/bash[root@f7565c0dcf12 opt]# java -versionjava version "1.8.0_202"Java(TM) SE Runtime Environment (build 1.8.0_202-b08)Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
OK至此我们的本地镜像创建完毕,下一篇我们将讲述如何将其放到我们自己的docker hub账号下。欢迎持续关注
88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~