dockerfile文件詳解之基礎語法
一般而言 Dockerfile 可以分為4個部分
(1)基礎鏡像信息,
(2)維護者信息
(3)鏡像操作命令
(4)啟動時執行指令
1-注釋
用 # 來進行注釋
(1)基礎鏡像信息
1-FROM 指定基礎鏡像
這里給大家介紹一下一個基礎鏡像 alpine 非常小, 安全高,很多鏡像都喜歡用它作為linux的基礎鏡像來用。
解下的案例我們也用這個基礎鏡像
#這是一個基礎鏡像 FROM alpine
2- LABEL 標簽
主要是給我們鏡像起一個描述的作用。
之前有一個 MAINTAINER ,過時了,我們不用它了, 但是如果看到有的Dockerfile 中有這個標簽,我們知道是什么意思就可以了。
那么LABLE 標簽怎么用呢?
LABEL maintainer=“dazhang”
name=“demo”
abc=“info1”
cde=“info2”
這個LABLE 可以省略,也就是可以不用寫, 重點是下邊的。
3- RUN 指令
RUN指令其實就是在linux 系統上跑一些命令,安裝文件, 修改文件等操作。
比如我們要安裝nginx
具體用什么命令安裝需要看 alpine 的文檔,這里我先不給大家演示,
我們就用一個簡單的指令,先讓大家理解
RUN echo dockefiletest
4-CMD 指令
CMD 是鏡像啟動時執行指令。
鏡像啟動如果是要運行很多命令:有2中方法
方法1:準備sh 文件
鏡像啟動運行這個sh 文件(大多數鏡像是用這個方法)
方法2: 在CMD 直接寫
CMD sleep 10; echo success
基于Dockerfile構建鏡像
我們有了Dockerfile 接下來就要 編譯生成我們的鏡像 ,
#用來注釋
#第一部分 基礎鏡像部分
FROM alpine
#第2部分: 維護者信息LABEL mainatiner="dazhhang" \name="demo" \abc="asdf"#第3部分: 鏡像操作指令
RUN echo hello#第4部分: CMD 命令
CMD sleep 300; echo success
然后 在啟動容器運行我們生成的鏡像。
docker build -t myalpine:v1.0 -f Dockerfile .
-f 是指定我們用哪個Dockerfile 來構建。
. 這個小點代表以當前目錄作為構建的基礎目錄(類似上下文環境)
檢查我們的鏡像:
docker images
運行鏡像
我們這次不用后臺運行,用交互模式運行,因為我們制作的鏡像 最后是睡10秒,就退出了。
沒有阻塞進程。
我們先簡單演示一下,后續會講如何設置阻塞進程,讓我們的鏡像一直運行。
docker run -it --name=myalpin myalpine:v1.0
這個時候 會等待10秒收輸出 success
輸出后這個容器就結束了。
docker ps -a
以上就是我們只做一個鏡像的最基本的命令。 大概分為4個部分,每個部分都必不可少。
比如我們現在要制作一個 springboot 項目, 那么基礎鏡像是一個依賴JDK 環境的鏡像對吧,
然后 CMD 是一個帶有 java -jar 命令,啟動我們的jar 包。
下節課 給大家詳細介紹每個指令的含義。