Dockerfile 簡介
- 常用保留字
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 指令指定的程式
- 編寫 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