Dockerfile常用指令

  • 什么是dockerfile
  • dockerfile是使用DSL(domain specific language)語法的指令來構(gòu)建一個docker鏡像攀涵,通過dockerfile來構(gòu)建docker鏡像更具備可重用性,透明性及冪等性

  • dockerfile指令
  • FROM指令:每一個dockerfile文件中的第一條指令必須是FROM指令。FROM指令指定一個已經(jīng)存在的基礎(chǔ)鏡像,后續(xù)指令都基于這個基礎(chǔ)鏡像進(jìn)行囱晴。
    FROM python3.6.7
  • RUN指令:該指令會在當(dāng)前鏡像中運行指定的linux命令
    RUN apt-get install -y vim
  • CMD指令:指定容器運行時要運行的命令
    CMD ['/bin/bash', '-l']
  • Note:docker run命令可以覆蓋CMD指令雀摘。如果在dockerfile指定了CMD指令,而同時在docker run命令中也指定了要運行的命令噪径,命令行中指定的命令會覆蓋dockerfile中的CMD指令
  • ENTRYPOINT指令:該指令與CMD指令非常類似。他們的區(qū)別在于docker run命令指定的命令可以覆蓋dockerfile指定的CMD指令数初,而ENTRYPOINT指令則不容易在容器啟動時被覆蓋找爱。
    Note:實際上,docker run命令中指定的任何參數(shù)都會被當(dāng)做參數(shù)再次傳遞給ENTRYPOINT指令中指定的命令泡孩。如果真的有需要可以在啟動容器時添加--entrypoint標(biāo)志來覆蓋ENTRYPOINT指令
    ENTRYPOINT ['/usr/bin/nginx']
  • WORKDIR:用來在從鏡像創(chuàng)建容器時车摄,在容器內(nèi)部設(shè)置一個工作目錄,ENTRYPOINT/CMD指定的程序會在這個目錄下運行
    RUN mkdir workspace
    WORKDIR workspace
  • ENV:用來在鏡像構(gòu)建過程中設(shè)置環(huán)境變量
    ENV GOBIN /usr/local/go/bin/
  • USER:用來指定該鏡像會以什么樣的用戶運行
    USER user
    USER user:group
  • VOLUME:用來向基于鏡像創(chuàng)建的容器添加卷。一個卷是可以存在于一個或者多個容器內(nèi)的特定的目錄吮播,這個目錄可以繞過聯(lián)合系統(tǒng)变屁,并提供如下共享數(shù)據(jù)或這對數(shù)據(jù)進(jìn)行持久化的功能
  • 卷可以在容器中共享和重用
  • 一個容器可以不是必須和其他容器共享卷
  • 對卷的修改是立即生效的
  • 對卷的修改不會對更新鏡像產(chǎn)生影響
  • 卷會一直存在直到?jīng)]有容器再使用它
    VOLUME ['/opt/myproject']該指令會為基于此鏡像的任何容器創(chuàng)建一個名為/opt/myproject的掛載點
  • ADD:用來將構(gòu)建環(huán)境的文件和目錄復(fù)制到鏡像中。ADD在處理歸檔文件時會自動將歸檔文件進(jìn)行解壓操作(.zip, .tar.gz...)
    ADD redis-8.5.6.tar.gz /usr/local/redies
  • COPY:與ADD指令類似薄料,它們的根本區(qū)別在于COPY指令只關(guān)心在構(gòu)建上下文中復(fù)制本地文件敞贡,而不會去做文件提取和解壓的工作。
    COPY . /opt/myproject
  • LABEL:為docker鏡像添加元數(shù)據(jù)摄职。
    LABEL version="1.0"
    LABEL localtion="china" type="data center" build_date="today"
  • ONBUILD:能為鏡像添加觸發(fā)器誊役。當(dāng)一個鏡像被當(dāng)做其他鏡像的基礎(chǔ)鏡像時,該鏡像中的觸發(fā)器將會被執(zhí)行谷市。
    ONBUILD ADD . /opt/myproject
    ONBUILD RUN cd /opt/myproject/src
  • EXPOSE:對外暴露容器的一個端口
    EXPOSE 9090

that's all

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛔垢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子迫悠,更是在濱河造成了極大的恐慌鹏漆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件创泄,死亡現(xiàn)場離奇詭異艺玲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鞠抑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門饭聚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搁拙,你說我怎么就攤上這事秒梳。” “怎么了箕速?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵酪碘,是天一觀的道長。 經(jīng)常有香客問我盐茎,道長兴垦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任字柠,我火速辦了婚禮滑进,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘募谎。我一直安慰自己,他們只是感情好阴汇,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布数冬。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拐纱。 梳的紋絲不亂的頭發(fā)上铜异,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音秸架,去河邊找鬼揍庄。 笑死,一個胖子當(dāng)著我的面吹牛东抹,可吹牛的內(nèi)容都是我干的蚂子。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼缭黔,長吁一口氣:“原來是場噩夢啊……” “哼食茎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起馏谨,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤别渔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后惧互,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哎媚,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年喊儡,在試婚紗的時候發(fā)現(xiàn)自己被綠了拨与。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡管宵,死狀恐怖截珍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箩朴,我是刑警寧澤岗喉,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站炸庞,受9級特大地震影響钱床,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜埠居,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一查牌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滥壕,春花似錦纸颜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春涮较,著一層夾襖步出監(jiān)牢的瞬間稠鼻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工狂票, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留候齿,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓闺属,卻偏偏與公主長得像慌盯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屋剑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

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