Dockerfile中命令解讀

Docker build

docker build -t docker2.io/ubuntu-clean .

要注意的是,這個命令會把當(dāng)前文件夾內(nèi)的所有文件包括子文件夾都傳遞給docker程序,于是,最好的辦法是新建一個空文件夾,然后寫Dockerfile,然后再執(zhí)行該命令。
-t xxx來給該鏡像打個標(biāo)簽

1. FROM

FROM <image> OR
FROM <image>:<tag>

都可以用,例如FROM ubuntu 和 FROM docker.cn/docker/ubuntu:14.04.1
如果構(gòu)建的時候沒有傳遞tag給它,默認(rèn)用latest做為tag
如果需要創(chuàng)建多個鏡像,F(xiàn)ROM可以在Dockerfile中出現(xiàn)多次的

2. MAINTAINER

這個命令用來寫自己的名字,是誰創(chuàng)建的這個鏡像

MAINTAINER <name> 
MAINTAINER tech pdhh@test.com

3. RUN

RUN命令是用來做具體的操作,它有兩種形式

RUN <command> (the command is run in a shell - /bin/sh -c - shell form)
RUN ["executable", "param1", "param2"] (exec form)

RUN命令執(zhí)行完之后會被commit,就跟源代碼管理一樣,會有個commit的編號,方便后續(xù)從任何一個命令之后checkout出來。
RUN命令會帶cache,例如執(zhí)行 RUN apt-get dist-upgrade -y, 如果不想用cache,可以這樣docker build --no-cache
每一條語句在Dockerfile中都是獨立的,也就是說,如果第一條語句寫RUN cd /tmp,對第二條語句是沒有作用的。

RUN cd /home
RUN touch test1.txt

最終test1.txt是在/目錄下,而不是在/home
所以每次RUN 都要使用絕對路徑
或者一次寫完

RUN cd /home && touch test1.txt

4. CMD

CMD命令有三種格式

CMD ["executable","param1","param2"] (exec form, this is the preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)

但是,CMD只能在Dockerfile中出現(xiàn)一次,如果你寫了多次,也只有最后一個生效
CMD主要是是用來啟動該容器下需要執(zhí)行的那個程序,作為main入口用。
如果CMD執(zhí)行的命令式shell,那么會默認(rèn)用/bin/sh -c 例如:

FROM ubuntu
CMD echo "This is a test1." | wc -  

如果不想用shell執(zhí)行,需要寫成json格式

FROM ubuntu
CMD ["/usr/bin/wc","--help"]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,744評論 0 120
  • 0. 前言 docker是什么?docker是用GO語言開發(fā)的應(yīng)用容器引擎,基于容器化,沙箱機制的應(yīng)用部署技術(shù)???..
    sessionboy閱讀 4,003評論 2 49
  • 博客原文 本文接著上一篇文章《Dockerfile 參考手冊(一)》接續(xù)Dockerfile相關(guān)的學(xué)習(xí)。本文主要介...
    rabbitGYK閱讀 1,740評論 0 9
  • 帶團厚道不行 精道才行;當(dāng)領(lǐng)導(dǎo)厚道不行 精明才中。啥性格人干啥事 各自在自己適合的領(lǐng)域不忘初心 做到精致就好
    最愛的桐嘉閱讀 239評論 0 0
  • 一個編程小白談?wù)勛约旱睦斫?,希望能拋磚引玉,得到大家的指點與批評。 當(dāng)我在學(xué)習(xí)java時,接觸到一個對象的概念,e...
    yulele閱讀 768評論 0 1

友情鏈接更多精彩內(nèi)容