Docker鏡像制作進(jìn)階

Dockerfile指令

  • ** CMD **
    用于指定一個(gè)容器啟動(dòng)時(shí)要運(yùn)行的命令管跺。
    CMD["/bin/bash","-l"]
    Docker 推薦使用數(shù)組的語(yǔ)法設(shè)置要執(zhí)行的命令喳张。在Dockerfile中只能指定一條CMD命令.如果指定了多條康辑,也只有最后一條被使用挤土。

docker run命令可以覆蓋CMD指令条篷。

  • ENTRYPOINT

這個(gè)指令與CMD指令類(lèi)似腰素,但是這個(gè)指令不會(huì)輕易被docker run覆蓋。因此可以將這兩個(gè)命令組合起來(lái)使用轰豆。
見(jiàn)如下:

Paste_Image.png

在原來(lái)基礎(chǔ)上加了這兩條命令

如果啟動(dòng)時(shí)胰伍,不指定命令,nginx則默認(rèn)使用 -h方式啟動(dòng) (用來(lái)顯示Nginx的幫助信息)
如果指定了酸休,則使用指定命令
docker run -d -p 80 keithfu/static_web -g "daemon off;"
如果確實(shí)需要骂租,可以通過(guò)--entrypoint標(biāo)志覆蓋ENTRYPOINT指令

  • WORKDIR
    該指令用來(lái)從鏡像創(chuàng)建一個(gè)新容器時(shí),在容器內(nèi)設(shè)置一個(gè)工作目錄雨席。ENTRYPOINT和CMD命令指定的程序會(huì)在這個(gè)目錄下執(zhí)行
WORKDIR /opt/webapp/db
RUN bundle install
wORKDIR /opt/webapp
ENTRYPOINT ["rackup"]

可以使用 -w標(biāo)識(shí)在運(yùn)行時(shí)覆蓋工作目錄
docker run -ti -w /var/log ubuntu pwd

  • ENV
    用來(lái)設(shè)置環(huán)境變量菩咨,可以在后續(xù)的任何RUN指令中使用,這就如同在命令前面指定了環(huán)境變量前綴一樣
    我們可以在其它命令中直接使用這些環(huán)境變量
ENV TARGET_DIR=/opt/app
WORKDIR $TARGET_DIR
  • USER
    基于該鏡像啟動(dòng)的容器會(huì)以nginx 用戶的身份來(lái)運(yùn)行陡厘。我們可以指定用戶名或UID以及組或GID,也可是兩者的組合抽米。
USER user
USER user:group
USER uid
USER uid:gid
USER uid:group
...

可以通過(guò)-u選項(xiàng)來(lái)覆蓋

  • VOLUME
    用來(lái)基于鏡像創(chuàng)建的容器添加卷。一個(gè)卷是可以存在于一個(gè)或者多個(gè)容器內(nèi)的特定目錄糙置,這個(gè)目錄可以繞過(guò)聯(lián)合文件系統(tǒng)云茸,并提供如下共享數(shù)據(jù)或者對(duì)數(shù)據(jù)進(jìn)行持久化功能。
    • 卷可以在容器間共享和重用谤饭。
    • 一個(gè)容器可以不是必須和其它容器共享卷
    • 對(duì)卷的修性是立時(shí)生效的
    • 對(duì)卷的修性不會(huì)對(duì)鏡像產(chǎn)生影響
    • 卷會(huì)一直存在直到?jīng)]有任何容器再使用它标捺。
      卷的功能讓我們可以將數(shù)據(jù)(如源代碼)、數(shù)據(jù)庫(kù)或者其它內(nèi)容添加到鏡像中而不是將這些內(nèi)容提交到鏡像中揉抵,并且允許我們?cè)诙鄠€(gè)容器間共享這些內(nèi)容亡容。
      我們可以通過(guò)數(shù)組的方式指定多個(gè)卷。(后續(xù)介紹)
  • ADD
    該指令用來(lái)將構(gòu)建環(huán)境下的文件和目錄復(fù)制到鏡像中冤今。需要指定源文件位置和目的文件位置兩個(gè)參數(shù)
    ADD software.lic /opt/application/software.lic
    在ADD文件時(shí)闺兢,Docker通過(guò)目的地址參數(shù)末尾的字符來(lái)判斷文件源 目錄還是文件。以/結(jié)尾就是目錄戏罢,不以/結(jié)尾則認(rèn)為是文件

文件源源也可以是URL
ADD http://a.com/latest.zip /root/wp.zip

如果ADD在處理本地歸檔文件時(shí)(tar archive,gzip,bzip2,xz)屋谭,Docker 會(huì)自動(dòng)針歸檔文件解開(kāi)
ADD latest.tar.gz /var/www/wordpress/
如果目的位置存在了同名的文件或者目錄脚囊,那們不會(huì)被覆蓋。

ADD指令使用構(gòu)建緩存變得無(wú)效桐磁。該指令后續(xù)的指令都不能繼續(xù)使用之前的構(gòu)建緩存悔耘。

  • COPY
    類(lèi)似于ADD COPY只關(guān)心構(gòu)建上下文復(fù)本地文件,而不會(huì)關(guān)心提取和解壓的工作我擂,且文件必須是與當(dāng)前構(gòu)建環(huán)境相對(duì)的文件或目錄衬以,要Dockerfile同一個(gè)目錄下

  • ONBUILD
    該指令能為鏡像添加觸發(fā)器(trigger)。當(dāng)一個(gè)鏡像被用作其鏡像的基礎(chǔ)鏡像時(shí)校摩,會(huì)被執(zhí)行泄鹏。觸發(fā)器可以是任何構(gòu)建指令

ONBUILD ADD . /app/src
ONBUILD RUN cd /app/src && make

ONBUILD 會(huì)按照你鏡像中指定的順序執(zhí)行,并且只能被繼承一次(也就是只能在子鏡像中執(zhí)行秧耗,而不會(huì)在孫子鏡像中執(zhí)行)

刪除鏡像

使用docker rmi 命令

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舶治,隨后出現(xiàn)的幾起案子分井,更是在濱河造成了極大的恐慌,老刑警劉巖霉猛,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尺锚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡惜浅,警方通過(guò)查閱死者的電腦和手機(jī)瘫辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坛悉,“玉大人伐厌,你說(shuō)我怎么就攤上這事÷阌埃” “怎么了挣轨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)轩猩。 經(jīng)常有香客問(wèn)我卷扮,道長(zhǎng),這世上最難降的妖魔是什么均践? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任晤锹,我火速辦了婚禮,結(jié)果婚禮上彤委,老公的妹妹穿的比我還像新娘鞭铆。我一直安慰自己,他們只是感情好葫慎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布衔彻。 她就那樣靜靜地躺著薇宠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艰额。 梳的紋絲不亂的頭發(fā)上澄港,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音柄沮,去河邊找鬼回梧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛祖搓,可吹牛的內(nèi)容都是我干的狱意。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拯欧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼详囤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起镐作,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤藏姐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后该贾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體羔杨,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年杨蛋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兜材。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逞力,死狀恐怖曙寡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掏击,我是刑警寧澤卵皂,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站砚亭,受9級(jí)特大地震影響灯变,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捅膘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一添祸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寻仗,春花似錦刃泌、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)亚侠。三九已至,卻和暖如春俗扇,著一層夾襖步出監(jiān)牢的瞬間硝烂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工铜幽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滞谢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓除抛,卻偏偏與公主長(zhǎng)得像狮杨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子到忽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一橄教、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,510評(píng)論 0 120
  • 五、Docker 端口映射 無(wú)論如何喘漏,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問(wèn)不到的颤陶。此外,除了...
    R_X閱讀 1,758評(píng)論 0 7
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,759評(píng)論 1 21
  • 代碼 模式總結(jié) 觀察者模式強(qiáng)調(diào)的是松耦合陷遮,通過(guò)程序之間的強(qiáng)約定弱依賴實(shí)現(xiàn)通用場(chǎng)景的<發(fā)布/訂閱>模型。 核心理念 ...
    極光火狐貍閱讀 307評(píng)論 0 0
  • 人們時(shí)常在想,我為什么來(lái)到了這個(gè)世界比吭,我來(lái)到這個(gè)世界是為了什么绽族?人們甚至?xí)г梗覟槭裁床皇钦l(shuí)誰(shuí)誰(shuí)的兒子衩藤,我為什么...
    墨言Aory閱讀 340評(píng)論 0 0