Dockerfile簡介及基於centos7的jdk鏡像制作


Dockerfile簡介

dockerfile 是一個文本格式的配置文件, 用戶可以使用 Dockerfile 來快速創建自定義的鏡像,

   另外,使用Dockerfile去構建鏡像好比使用pom去構建maven項目一樣,有異曲同工之妙

 

dockerfile基本結構

   Dockerfile 由一行行命令語句組成, 並且支持以#開頭的注釋行,一般而言, Dockerfile 主體內容分為四部分:

   基礎鏡像信息、 維護者信息、 鏡像操作指令和容器啟動時執行指令。

  部分                                               命令

   基礎鏡像信息                               FROM

   維護者信息                                  MAINTAINER

   鏡像操作指令                              RUN(COPY/ADD)EXPOSEWORKDIRONBUILDUSERVOLUME

   容器啟動時執行指令                   CMDENTRYPOINT

 

Docker制作jdk鏡像

 

   0.啟動虛擬機,進入centos

 

   1.創建文件夾上傳jdk的安裝包,和在同級目錄下編寫Dockerfile文件

#創建鏡像目錄

mkdir –p /lww_docker/jdk

#安裝lrzsz命令

 

yum install lrzsz -y

 

#選擇文件進行上傳

 

rz

 

 

#創建 Dockerfile文件 注意d是大寫

 

touch Dockerfile

 

 2.編寫 Dockerfile 文件

 

#1.指定基礎鏡像,並且必須是第一條指令
FROM centos:7

#2.指明該鏡像的作者和其電子郵件
MAINTAINER lww "lww@qq.com"

#3.在構建鏡像時,指定鏡像的工作目錄,之后的命令都是基於此工作目錄,如果不存在,則會創建目錄
WORKDIR /lww_docker/jdk

#4.一個復制命令,把jdk安裝文件復制到鏡像中,語法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相對路徑
ADD jdk-8u221-linux-x64.tar.gz /lww_docker/jdk/

#5.配置環境變量
ENV JAVA_HOME=/lww_docker/jdk/jdk1.8.0_221
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#容器啟動時需要執行的命令
#CMD ["java","-version"]

 

3.執行Dockerfile文件,初次依賴鏡像的時候會下載相應鏡像

 

docker build -t jdk8:v1.0 .

 

      1-t  jdk8:v1.0  給新構建的鏡像取名為 jdk8, 並設定版本為 v1.0

      2:注意最后有個點,代表使用當前路徑的 Dockerfile 進行構建

4.查看鏡像

docker images

5.創建並啟動容器

 

docker run -it jdk8:v1.0 /bin/bash

 

6.檢查是否有問題

 

java -version

 

 

 

 

 

 

 

4. dockerfile實踐經驗

 

   1. 精簡鏡像用途:盡量讓每個鏡像的用途都比較集中單一,避免構造大而復雜、多功能的鏡像

 

   2. 選用合適的基礎鏡像:容器的核心是應用,選擇過大的父鏡像(如Ubuntu系統鏡像)會造成最終生成應用鏡像的膝腫,

 

       推薦選用瘦身過的應用鏡像或者較為小巧的系統鏡像(alpine)

 


免責聲明!

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



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