Dockerfile是由一系列命令和參數構成的腳本,這些命令應用於基礎鏡像並最終建立一個新的鏡像。java
一、對於開發人員:能夠爲開發團隊提供一個徹底一致的開發環境; linux
二、對於測試人員:能夠直接拿開發時所構建的鏡像或者經過Dockerfile文件構建一個新的鏡像開始工做了; docker
三、對於運維人員:在部署時,能夠實現應用的無縫移植。centos
命令 | 做用 |
---|---|
FROM image_name:tag | 定義了使用哪一個基礎鏡像啓動構建流程 |
MAINTAINER user_name | 聲明鏡像的建立者 |
ENV key value | 設置環境變量 (能夠寫多條) |
RUN command | 是Dockerfile的核心部分(能夠寫多條) |
ADD source_dir/file dest_dir/file | 將宿主機的文件複製到容器內,若是是一個壓縮文件,將會在複製後自動解壓 |
COPY source_dir/file dest_dir/file | 和ADD類似,可是若是有壓縮文件並不能解壓 |
WORKDIR path_dir | 設置工做目錄 |
bash
(1)建立目錄服務器
mkdir –p /usr/local/dockerjdk8
(2)下載jdk-8u171-linux-x64.tar.gz並上傳到服務器(虛擬機)中的/usr/local/dockerjdk8目錄運維
(3)在剛剛Centos7內建立的/usr/local/dockerjdk8目錄中建立文件Dockerfile測試
ui
#依賴鏡像名稱和ID FROM centos:7 #指定鏡像建立者信息 MAINTAINER ITCAST #切換工做目錄 WORKDIR /usr RUN mkdir /usr/local/java #ADD 是相對路徑jar,把java添加到容器中 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
(4)執行命令構建鏡像spa
docker build -t='jdk1.8' .
注意後邊的空格和點,不要省略 | 空格和點表明當前目錄,意思是在當前目錄下尋找Dockerfile這個文件,使用Dockerfile文件進行鏡像的構建;
(5)查看鏡像是否創建完成
docker images