使用Dockerfile創建基礎JDK容器


JDK容器作為一種基礎容器,網上有很多的鏡像,可供大家直接下載使用。但是自己制作鏡像也有很多的意義,比如學習,制作特定架構的鏡像,添加個性化配置等。本教程就是通過Dokcerfile文件制作自己的JDK鏡像

准備環節

  1. 需要准備JDK安裝包,可以從此站點進行下載 華為下載源

  2. 創建 jdk-8 文件夾,將下載的 JDK 安裝包放置在這個文件夾下,並創建 Dockerfile 文件

    $ ls
    Dockerfile                            jdk-8u201-linux-arm64-vfp-hflt.tar.gz
    $ pwd
    /Users/linchangkun/workspace/docker/jdk-8
    

    這是我准備的環境,因為我使用是 arm 架構的 mac,所以我下載的 jdk 是 arm64 版本的,一般大家的服務器或者電腦,一般是下載 jdk-8u201-linux-x64.tar.gz

編寫 Dockerfile

  • 請注意下述的注釋部分

    # 基礎鏡像使用 debian, stable-slim 是指穩定版精簡包
    FROM debian:stable-slim
    # 描寫維護者信息
    MAINTAINER linck zerolinck@foxmail.com
    
    # 設置工作目錄
    WORKDIR /
    
    # 將jdk安裝包復制到 /usr/local/jdk 目錄下,ADD 命令會自動解壓
    ADD jdk-8u201-linux-arm64-vfp-hflt.tar.gz /usr/local/jdk/
    
    # ENV 配置環境變量,下面就是大家熟悉的 JAVA_HOME、CLASS_PATH、PATH
    
    # !!!!!
    # !!!!! 這里注意,這里寫了 jdk1.8.0_201,是因為我的jdk安裝包解壓是叫這個名字,大家自己准備的jdk安裝包解壓名字不一樣的,需要換掉
    
    ENV JAVA_HOME=/usr/local/jdk/jdk1.8.0_201
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV PATH=$JAVA_HOME/bin:$PATH
    

制作鏡像

  • 使用 docker build 創建鏡像,-t 后面跟着的是 鏡像名:版本,最后的點是指當前目錄,比如Dockerfile中的add命令,復制jdk安裝包到鏡像中,就是復制當前目錄的jdk安裝包

    $ docker build -t lin-jdk-8:1.0 .
    [+] Building 17.5s (7/7) FINISHED
     => [internal] load build definition from Dockerfile 0.1s
     => => transferring dockerfile: 313B 0.0s
     => [internal] load .dockerignore 0.0s
     => => transferring context: 2B 0.0s
     => [internal] load metadata for docker.io/library/debian:stable-slim 15.4s
     => [internal] load build context 2.0s
     => => transferring context: 73.33MB 2.0s
     => [1/3] FROM docker.io/library/debian:stable-slim@sha256:608a500bd0d397338ec0e8579649985fb2  0.0s
     => CACHED [2/3] ADD jdk-8u201-linux-arm64-vfp-hflt.tar.gz /usr/local/jdk/ 0.0s
     => exporting to image 0.0s
     => => exporting layers 0.0s
     => => writing image sha256:3832427f0da8e7bbedff8f491952d1ace01560fc7cbd579ab27249b822172eda 0.0s
     => => naming to docker.io/library/lin-jdk-8:1.0 0.0s
    
    Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
    

    開始 build,如果你的本地沒有 debian:stable-slim 這個基礎鏡像,那么會先聯網下載,如果你的網絡不太好,可能會需要下載挺久。

查看運行鏡像

  • 到這鏡像就已經制作完成了,可以查看並用於創建容器

    # 可以看到我們自己制作的鏡像
    $ docker images
    lin-jdk-8               1.0           3832427f0da8   8 days ago      242MB
    
    # 使用鏡像創建容器
    $ docker run -it --name lin-jdk-01 lin-jdk-8:1.0 bash
    root@2e22ae0ee798:/#
    
    # 查看復制進來的 jdk,看到是被自動解壓的了
    root@2e22ae0ee798:/usr/local/jdk# ls
    jdk1.8.0_201
    
    # 輸出環境變量,就是 Dockerfile 中 ENV 描述的部分
    root@2e22ae0ee798:/usr/local/jdk# echo $JAVA_HOME
    /usr/local/jdk/jdk1.8.0_201
    
    root@2e22ae0ee798:/usr/local/jdk# echo $CLASSPATH
    .:/usr/local/jdk/jdk1.8.0_201/lib/dt.jar:/usr/local/jdk/jdk1.8.0_201/lib/tools.jar
    
    root@2e22ae0ee798:/usr/local/jdk# echo $PATH
    /usr/local/jdk/jdk1.8.0_201/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM