DockerFile 詳解

DockerFile 詳解

Dockerfile由一行行命令語(yǔ)句組成毡代,并且支持用“#”開(kāi)頭作為注釋笤喳,一般的,Dockerfile分為四部分:基礎(chǔ)鏡像信息枯途,維護(hù)者信息忌怎,鏡像操作指令和容器啟動(dòng)時(shí)執(zhí)行的指令。

Dockerfile指令

1酪夷、FROM

格式:FROM <image>或 FROM <image>:<tag>

第一條指令必須為FROM指令榴啸,并且,如果在同一個(gè)Dockerfile中創(chuàng)建多個(gè)鏡像時(shí)晚岭,可以使用多個(gè)FROM指令(每個(gè)鏡像一次)

2鸥印、MAINTAINET

格式:MAINTAINET <name>

指定維護(hù)者的信息

3、RUN

格式:RUN <command> 或 RUN ["", "", ""]

每條指令將在當(dāng)前鏡像基礎(chǔ)上執(zhí)行腥例,并提交為新的鏡像辅甥。(可以用“\”換行)

4酝润、CMD

格式:CMD ["","",""]

指定啟動(dòng)容器時(shí)執(zhí)行的命令燎竖,每個(gè)Dockerfile只能有一條CMD指令,如果指定了多條指令要销,則最后一條執(zhí)行构回。(會(huì)被啟動(dòng)時(shí)指定的命令覆蓋)

5、EXPOSE

格式:EXPOSE <port>  [ <port> ...]

告訴Docker服務(wù)端暴露端口疏咐,在容器啟動(dòng)時(shí)需要通過(guò) -p 做端口映射

6纤掸、ENV

格式:ENV <key> <value>

指定環(huán)境變量,會(huì)被RUN指令使用浑塞,并在容器運(yùn)行時(shí)保存

7借跪、ADD

格式:ADD  <src>  <dest>

復(fù)制指定的<src>到容器的<dest>中,<src>可以是Dockerfile所在的目錄的一個(gè)相對(duì)路徑酌壕;可以是URL掏愁,也可以是tar.gz(自動(dòng)解壓)

8、COPY

格式:COPY <src>  <dest>

復(fù)制本地主機(jī)的 <src> ( 為 Dockerfile 所在目錄的相對(duì)路徑)到容器中的 <dest> (當(dāng)使用本地目錄為源目錄時(shí)卵牍,推薦使用 COPY)

9果港、ENTRYPOINT

格式:ENTRYPOINT ["","",""]

配置容器啟動(dòng)后執(zhí)行的命令,并且不可被 docker run 提供的參數(shù)覆蓋糊昙。(每個(gè) Dockerfile 中只能有一個(gè) ENTRYPOINT 辛掠,當(dāng)指定多個(gè)時(shí),只有最后一個(gè)起效)

10、VOLUME

格式:VOLUME ["/mnt"] 

創(chuàng)建一個(gè)可以從本地主機(jī)或其他容器掛載的掛載點(diǎn)萝衩,一般用來(lái)存放數(shù)據(jù)庫(kù)和需要保持的數(shù)據(jù)等

11回挽、USER

格式:USER daemon

指定運(yùn)行容器時(shí)的用戶名或 UID,后續(xù)的 RUN 也會(huì)使用指定用戶欠气。

12厅各、WORKDIR

格式:WORKDIR /path/to/workdir

為后續(xù)的 RUN 、 CMD 预柒、 ENTRYPOINT 指令配置工作目錄队塘。(可以使用多個(gè) WORKDIR 指令,后續(xù)命令如果參數(shù)是相對(duì)路徑宜鸯, 則會(huì)基于之前命令指定的路徑)

13憔古、ONBUILD

格式:ONBUILD [INSTRUCTION]

配置當(dāng)所創(chuàng)建的鏡像作為其它新創(chuàng)建鏡像的基礎(chǔ)鏡像時(shí),所執(zhí)行的操作指令

例子

將需要使用的jdk(jdk1.7.0_79)和已經(jīng)編譯好的包( websocket.jar)放到和dockerfile相同的文件夾下面淋袖,dockerfile如下:

FROM centos
# 鏡像是centos
MAINTAINER CrissChan
# 維護(hù)者CrissChan
COPY jdk1.7.0_79 jdk1.7.0_79
# 復(fù)制JDK
ADD websocket.jar app.jar
# 將項(xiàng)目的添加到容器中鸿市,并修改名字為app.jar
ENV JAVA_HOME=/jdk1.7.0_79
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 配置jdk環(huán)境
EXPOSE 8080
# 容器對(duì)外提供服務(wù)的端口是8080
ENTRYPOINT ["java","-jar","/app.jar"]
#啟動(dòng)容器后啟動(dòng)app.jar的應(yīng)用

編譯并生成鏡像 (. 表示當(dāng)前路徑)

docker build -t yaolin/websocket .

查看生成的鏡像

docker images

創(chuàng)建容器并運(yùn)行

docker run -p 192.168.0.105:8080:8080 --name websocket  crisschan/websocket

關(guān)注我,關(guān)注測(cè)試
FROM:https://blog.csdn.net/crisschan

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末即碗,一起剝皮案震驚了整個(gè)濱河市焰情,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌剥懒,老刑警劉巖内舟,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異初橘,居然都是意外死亡验游,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)保檐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耕蝉,“玉大人,你說(shuō)我怎么就攤上這事夜只±菰冢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵扔亥,是天一觀的道長(zhǎng)场躯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)砸王,這世上最難降的妖魔是什么推盛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮谦铃,結(jié)果婚禮上耘成,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好瘪菌,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布撒会。 她就那樣靜靜地躺著,像睡著了一般师妙。 火紅的嫁衣襯著肌膚如雪诵肛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天默穴,我揣著相機(jī)與錄音怔檩,去河邊找鬼。 笑死蓄诽,一個(gè)胖子當(dāng)著我的面吹牛薛训,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仑氛,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乙埃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了锯岖?” 一聲冷哼從身側(cè)響起介袜,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎出吹,沒(méi)想到半個(gè)月后遇伞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趋箩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年赃额,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了加派。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叫确。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖芍锦,靈堂內(nèi)的尸體忽然破棺而出竹勉,到底是詐尸還是另有隱情,我是刑警寧澤娄琉,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布次乓,位于F島的核電站,受9級(jí)特大地震影響孽水,放射性物質(zhì)發(fā)生泄漏票腰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一女气、第九天 我趴在偏房一處隱蔽的房頂上張望杏慰。 院中可真熱鬧,春花似錦、人聲如沸缘滥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朝扼。三九已至赃阀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間擎颖,已是汗流浹背榛斯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搂捧,地道東北人肖抱。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像异旧,于是被迫代替她去往敵國(guó)和親意述。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 文章結(jié)構(gòu): (一)Docker常用知識(shí)點(diǎn) (二)Dockerfile指令詳解 文章最后附一份docker教學(xué)視頻吮蛹,...
    溫室尋荒涼閱讀 1,409評(píng)論 0 11
  • 1.基本說(shuō)明 Dockfile是一個(gè)用于編寫(xiě)docker鏡像生成過(guò)程的文件荤崇,其有特定的語(yǔ)法。在一個(gè)文件夾中潮针,如果有...
    何新良閱讀 775評(píng)論 0 0
  • ADD ADD命令有兩個(gè)參數(shù)术荤,源和目標(biāo)。它的基本作用是從源系統(tǒng)的文件系統(tǒng)上復(fù)制文件到目標(biāo)容器的文件系統(tǒng)每篷。如果源是一...
    Superwind20閱讀 672評(píng)論 0 0
  • Dockerfile 樣本 dockerfile官方文檔 構(gòu)建鏡像 -f 指定具體的dockerfile-t 指...
    rub1cky閱讀 537評(píng)論 0 1
  • 本文僅為個(gè)人學(xué)習(xí)記錄. 教程來(lái)源Docker--從入門(mén)到實(shí)踐 FROM 指定基礎(chǔ)鏡像 FROM 有一個(gè)比較特殊的鏡...
    布衣碼農(nóng)閱讀 149評(píng)論 0 0