1、DockerFile簡介docker
一、簡介shell
什麼是docker file
ide
docker file僅僅就是一些文本指令而已ui
將這些指令保存成一個文本文件spa
而後經過在命令行中調用這些文本文件完成建立docker鏡像命令行
docker file的組成結構blog
# 表示註釋信息it
指令 參數class
一行一個指令,指令一般寫成大寫,可是其實大小寫不敏感容器
docker file中的第一個非註釋行必須是FROM(這是用來指定基礎鏡像,由於咱們知道製做鏡像都是基於一個基礎鏡像來作的。)
docker file中的內容是從上向下依次執行
docker file使用要求
第一個要求:就是,第一要有工做目錄,目錄中要有docker file文件,首字母要大寫,以下
第二個要求:必須將須要用到的相關文件都放在這個目錄或者子目錄中,好比咱們要在容器中安裝rpm包和配置文件,都必須放在這裏
在製做鏡像的時候,若是是將一個子目錄作入的鏡像中,那麼子目錄下的所有文件都會作入鏡像。
有個特殊狀況,如子目錄中的有些文件咱們並不想作入到鏡像中,那麼此時就能夠將這些文件排除掉
工做目錄下,還應該有個隱藏文件:dockeringore
這個文件就能夠實現將指定的文件不要作入到鏡像中
方法就是將須要忽略的文件的路徑一行一個的寫入到這個隱藏文件中
當工做目錄準備好一會,就能夠製做鏡像了
能夠經過執行命令docker build經過讀取這個docker file文件來製做鏡像
而後將這個作好的鏡像打個標籤,而後推到倉庫中,而後就能夠用了
在用docker build製做鏡像的時候,其實也會悄悄地啓動一個容器,而後在這個容器中執行安裝配置操做,而後將安裝好的結果作成一個鏡像
在製做鏡像的時候,是能夠執行一些shell命令的,可是須要注意,這些命令並不必定有,就要看底層的基礎鏡像中是否有這個命令。
在docker file中也是支持使用變量的
定義變量:var=value
引用變量:$var 或者 ${var}
也支持變量的一些高級用法
${var:-value} 若是變量沒有定義或者變量值爲空,那麼就輸出後面的值
${var:+value} 若是變量已經有值了,就將value賦值給變量