40_DockerFile簡介

鸟叔书發表於2024-03-13

Dockerfile 簡介

  1. 常用保留字
FROM
    基礎映象, 當前新映象是基於哪個映象的, 指定一個已經存在的映象作為模板, 第一條必須是FROM
MAINTAINER
    映象維護者的姓名和郵箱地址

RUN
    容器構建時需要執行的命令, 有兩種格式
        RUN yum -y install vim
        RUN ["./test.sh", "para1", "para2"]

EXPOSE
    當前容器對外暴露出的埠

WORKDIR
    指定在建立容器後, 終端預設登陸的進來工作目錄, 一個落腳點

USER
    指定該映象以什麼樣的使用者去執行, 如果都不指定, 預設是root

ENV
    用來在構建映象過程中設定環境變數

ADD
    將宿主機目錄下的檔案複製進映象且會自動處理URL和解壓tar壓縮包

COPY
    類似ADD, 複製檔案和目錄到映象中. 將從構建上下文目錄中 <源路徑> 的檔案/目錄複製到新的一層的映象內的 <目標路徑> 位置
    方法:
        COPY src dest
        COPY ["src", "dest"]

VOLUME
    容器資料卷, 用於資料儲存和持久化工作

CMD
    指定容器啟動後的要乾的事情, 同上分為shell格式和exec格式
    Dockerfile 中可以有多個 CMD 指令, 但只有最後一個生效, CMD 會被 docker run 之後的引數替換

ENTRYPOINT
    也是用來指定一個容器啟動時要執行的命令
    類似於 CMD 指令, 但是ENTRYPOINT不會被docker run後面的命令覆蓋,  而且這些命令列引數會被當作引數送給 ENTRYPOINT 指令指定的程式
  1. 編寫 centos 安裝 java 環境
FROM centos
MAINTAINER zzyy<zzyybs@126.com>
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
 
# 安裝vim編輯器
RUN yum -y install vim
# 安裝ifconfig命令檢視網路IP
RUN yum -y install net-tools
# 安裝java8及lib庫
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
# ADD 是相對路徑jar,把jdk-8u171-linux-x64.tar.gz新增到容器中,安裝包必須要和Dockerfile檔案在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
# 配置java環境變數
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 
EXPOSE 80
 
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash

# build
docker build -t centosjava8:1.5