Dockerfile簡介
dockerfile 是一個文本格式的配置文件, 用戶可以使用 Dockerfile 來快速創建自定義的鏡像,
另外,使用Dockerfile去構建鏡像好比使用pom去構建maven項目一樣,有異曲同工之妙
dockerfile基本結構
Dockerfile 由一行行命令語句組成, 並且支持以#開頭的註釋行,一般而言, Dockerfile 主體內容分爲四部分:
基礎鏡像信息、 維護者信息、 鏡像操作指令和容器啓動時執行指令。
部分 | 命令 |
---|---|
基礎鏡像信息 | FROM |
維護者信息 | MAINTAINER |
鏡像操作指令 | RUN、(COPY/ADD)、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等 |
容器啓動時執行指令 | CMD、ENTRYPOINT |
Docker製作jdk鏡像
-
啓動虛擬機,進入centos
-
創建文件夾上傳jdk的安裝包,和在同級目錄下編寫Dockerfile文件
創建鏡像目錄
mkdir –p /lst_docker/jdk
安裝lrzsz命令
yum install lrzsz -y
選擇文件進行上傳rz
輸入rz會出現文件選擇器,選擇要上傳的jdk文件
之後會在右上角顯示上傳進度
注意d是大寫touch Dockerfile
-
編寫 Dockerfile 文件
#1.指定基礎鏡像,並且必須是第一條指令 FROM centos:7 #2.指明該鏡像的作者和其電子郵件 MAINTAINER lst "[email protected]" #3.在構建鏡像時,指定鏡像的工作目錄,之後的命令都是基於此工作目錄,如果不存在,則會創建目錄 WORKDIR /lst_docker/jdk #4.一個複製命令,把jdk安裝文件複製到鏡像中,語法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相對路徑 ADD jdk-8u221-linux-x64.tar.gz /lst_docker/jdk/ #5.配置環境變量 ENV JAVA_HOME=/lst_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"]
-
執行Dockerfile文件,初次依賴鏡像的時候會下載相應鏡像
docker build -t jdk8:v1.0 .
注1:-t jdk8:v1.0 給新構建的鏡像取名爲 jdk8, 並設定版本爲 v1.0
注2:注意最後有個點,代表使用當前路徑的 Dockerfile 進行構建 -
查看鏡像
docker images
-
創建並啓動容器
docker run -it --name myjdk01 e3422bf11222
啓動後,輸入
java -version
看是否成功
over。。。