CMD
指定容器啟動(dòng)時(shí)要運(yùn)行的命令懂傀。使用數(shù)組結(jié)構(gòu)去聲明。不然docker會(huì)在命令前加上 /bin/sh -c。 docker run命令可以覆蓋CMD指令枣察。
ENTERPOINT
docker run命令中指定的任何參數(shù)都會(huì)被當(dāng)作參數(shù)再次傳遞給ENTERPOINT指令中指定的命令。也是數(shù)組結(jié)構(gòu)聲明燃逻。
WORKDIR
創(chuàng)建一個(gè)新容器時(shí)序目,在容器內(nèi)部設(shè)置一個(gè)工作目錄, ENTERPOINT 和 / 或 CMD 指定的程序會(huì)在這個(gè)目錄下執(zhí)行伯襟。
ENV
用來在鏡像構(gòu)建過程中設(shè)置環(huán)境變量猿涨。這個(gè)新環(huán)境變量可以在后續(xù)的任何RUN指令中使用。
docker run 命令的-e標(biāo)志來傳遞環(huán)境變量姆怪。這些變量只會(huì)在運(yùn)行時(shí)有效叛赚。
USER
指定該鏡像以什么樣的用戶去執(zhí)行澡绩。
VOLUME
向基于鏡像創(chuàng)建的容器添加卷。卷時(shí)存在于一個(gè)或者多個(gè)容器內(nèi)的特定的目錄俺附,這個(gè)目錄可以繞過聯(lián)合文件系統(tǒng)肥卡,提供共享數(shù)據(jù)或者對(duì)數(shù)據(jù)進(jìn)行持久化。
- 卷可以在容器間共享和重用
- 一個(gè)容器可以不是必須和其他容器共享卷
- 對(duì)卷的修改是立馬生效的
- 對(duì)卷的修改不會(huì)對(duì)更新鏡像產(chǎn)生影響
- 卷會(huì)一直存在事镣,直到?jīng)]有任何容器再使用它
ADD
用來將構(gòu)建環(huán)境下的文件和目錄復(fù)制到鏡像中步鉴。源文件為構(gòu)建目錄下的或者URL,不能對(duì)構(gòu)建目錄或者上下文之外的文件進(jìn)行ADD操作璃哟。本地壓縮文件氛琢,會(huì)自動(dòng)解壓。
COPY
COPY很像ADD随闪,但是不會(huì)去做文件提取和解壓工作阳似。如果目的位置不存在,Docker會(huì)自動(dòng)創(chuàng)建所需要的目錄結(jié)構(gòu)
ONBUILD
鏡像觸發(fā)器蕴掏。當(dāng)一個(gè)鏡像被用作其他鏡像的基礎(chǔ)鏡像的時(shí)候障般,觸發(fā)器會(huì)被執(zhí)行。按照指定的順序執(zhí)行盛杰。只能被子鏡像執(zhí)行一次挽荡。