zoukankan      html  css  js  c++  java
  • docker通过dockerfile构建JDK最小镜像,Docker导出导入镜像



    相关文章原文地址:

    CSDN:fds++:使用Dockerfile构建最小JDK基础镜像



    一、docker通过dockerfile构建JDK最小镜像

    1.1 下载JRE

    下载地址:https://www.java.com/en/download/manual.jsp
    或点击下载

    1.2 解压JRE,删除相关不需要文件

    #解压
    tar xvcf jre-8u161-linux-x64.tar.gz
    #进入目录
    cd jre1.8.0_161/
    #删除文本文件
    rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.txt Welcome.html
    #删除其他无用文件
    rm -rf     lib/plugin.jar 
               lib/ext/jfxrt.jar 
               bin/javaws 
               lib/javaws.jar 
               lib/desktop 
               plugin 
               lib/deploy* 
               lib/*javafx* 
               lib/*jfx* 
               lib/amd64/libdecora_sse.so 
               lib/amd64/libprism_*.so 
               lib/amd64/libfxplugins.so 
               lib/amd64/libglass.so 
               lib/amd64/libgstreamer-lite.so 
               lib/amd64/libjavafx*.so 
               lib/amd64/libjfx*.so
    

    1.3重新打包

    重新打包所有文件(不打包也可以,在Dockerfile里ADD这个目录即可,当前精简完jre目录大小是107M,压缩后是41M)

    (这个地方,我打包后,一直会出现一个错误,研究到后来 也没想到解决方法,若有明白人,麻烦讲解,若后期有办法解决,也会解决。)

    Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: "java": executable file not found in $PATH": unknown.
    Build step 'Execute shell' marked build as failure
    

    1.4创建Dockerfile

    创建Dockerfile(ps:Dockerfile文件要和jre8.tar.gz在一个路径下,如果不一样,下面的ADD里面的路径要相应变化)

    # using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
    FROM docker.io/jeanblanchard/alpine-glibc
    # A streamlined jre
    ADD jre8.tar.gz /usr/java/jdk/
    # set env
    ENV JAVA_HOME /usr/java/jdk
    ENV PATH ${PATH}:${JAVA_HOME}/bin
    # run container with base path:/opt
    WORKDIR /opt
    

    1.5 docker构建镜像

    构建:

    docker build -t fds/java8:1.0 .
    

    1.6 测试运行

    # docker run -it voole/java8:1.0
    /opt # java -version
    java version "1.8.0_161"
    Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
    

    二、Docker导出导入镜像

    2.1 保存镜像到本地

    docker save -o jdk.tar imageId
    

    2.2 将打包镜像导入目标服务器,并使用docker导入

    docker load -i images.tar
    

    2.3 Docker使用gzip压缩导出/导入镜像

    docker save <myimage>:<tag> | gzip > <myimage>_<tag>.tar.gz
    
    gunzip -c <myimage>_<tag>.tar.gz | docker load
    
  • 相关阅读:
    Linux基础:Day05
    Linux基础:Day04
    Linux用户和用户组管理
    Linux基础:Day03
    Linux基础:Day02
    Linux基础:Day01
    Shell:Day10
    shell概述和shell脚本执行方式
    fdisk分区
    文件系统常用命令
  • 原文地址:https://www.cnblogs.com/aixing/p/13327240.html
Copyright © 2011-2022 走看看