java-SpringBoot配置Dockerfile,打包鏡像全過程以及Dockerfile基礎命令介紹


Docker實戰篇——java-SpringBoot配置Dockerfile,打包鏡像全過程
  1. Dockerfile構成

    :注釋

    Dockerfile由4部分組成:

    ​ 1) 基礎鏡像信息:From :

    ​ 2)維護者信息:LABEL maintainer="1091173065@qq.com"

    ​ 3)鏡像操作指令:RUN cp -r /var/lib/mysql /var/lib/mysql-no-volume

    ​ 4)容器啟動指令:CMD ["--datadir", "/var/lib/mysql-no-volume"]

    注意:基礎鏡像信息可以寫多個FROM指令來構建復雜的鏡像

  2. Dockerfile指令

    • FROM:指定制作的鏡像繼承自那個鏡像

      格式:

      FROM <image>
      FROM <image>:<tag>
      FROM <image>:<digest> 
      
    • LABEL maintainer:用來指定維護者信息

      格式:LABEL maintainer="1091173065@qq.com"

    • RUN:執行shell命令

      格式:

      1. RUN <command> #后邊直接跟shell命令
      2. RUN ["executable", "param1", "param2"]#類似於函數調用。
      
    • EXPOSE:暴露容器中的端口號,也可通過“docker run -p”進行映射。

      格式:EXPOSE [ ......]

    • CMD:只存在一個,

      1. CMD ["executable","param1","param2"]
      2. CMD ["param1","param2"]
      3. CMD command param1 param2
      
    • ENTRYPOINT:Dockerfile只能存在一個該指令,當指定多個時,最后一個有效。

      1. ENTRYPOINT ["executable", "param1", "param2"]
      2. ENTRYPOINT command param1 param2
      
    • VOLUME:創建一個可以從本地主機或其他容器掛載的掛載點,一般用來存放數據庫或需要永久保存的數據。

      docke run -v $HostPath:$ContainerPath #常用指令
      VOLUME ["/data"]
      
    • ENV:指定環境變量,會被后續RUN指令使用,並在容器運行時保持。

      1. ENV <key> <value> #1個環境
      2. ENV <key>=<value> ...#多個環境
      
    • ADD:復制命令,把文件復制到鏡像中。

      1. ADD <src>... <dest>
      2. ADD ["<src>",... "<dest>"]
      
    • COPY:復制本地的src(為Dockerfile所在目錄的相對路徑)到容器中的dest。當使用本地目錄為源目錄是推薦使用COPY。

      1. COPY <src>... <dest>
      2. COPY ["<src>",... "<dest>"]
      
  3. java-SpringBoot配置Dockerfile,打包鏡像全過程

    1、Spring項目打包:IDEA選擇右側的【Maven】-【projectName】-【lifecycle】-【package】,打包好的jar將存儲在target下xxxxx.jar
    2、編寫Dockerfile

    # 該鏡像需要依賴的基礎鏡像
    FROM openjdk:8
    # 指定維護者名稱
    MAINTAINER hcx 1091173065@qq.com
    # 將targer目錄下的jar包復制到docker容器/home/springboot目錄下面目錄下面
    ADD ./target/core242-0.0.1-SNAPSHOT.jar /home/springboot/core242-0.0.1-SNAPSHOT.jar
    # 聲明服務運行在8080端口
    EXPOSE 8080
    # 執行命令
    CMD ["java","-jar","/home/springboot/core242-0.0.1-SNAPSHOT.jar"]
    
    

    3、將項目上傳至服務器,進行docker build

    docker build -t containerName(自定義):tag(自定義) .
    #注意最后的 . 一定要有
    #完成構建后可以使用命令dokcer images查看build完的鏡像
    

    4、啟動構建完成的鏡像

    docker run -d -p 8080:8080 --name customName containerName:tag
    #啟動后可以使用docker ps -a查看容器狀態,是否能夠正常使用,如果未正常啟動就需要自行檢查配置的過程中是否出現失誤,例如Dockerfile中的CMD或者ADD的文件路徑是否正確等。
    


免責聲明!

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



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