Dockerfile指令

  1. CMD:用于指定一個(gè)容器啟動(dòng)時(shí)要運(yùn)行的命令
CMD ["/bin/bash"] #等同于docker run 后接的/bin/bash

注意:
a.docker run命令可以覆蓋CMD命令;
b.在dockerfile中只能指定一條CMD指令,多條CMD指令也只有最后一條會(huì)被執(zhí)行

  1. ENTRYPOINT:不容易在啟動(dòng)容器時(shí)被覆蓋;docker run命令行中指定的任何參數(shù)會(huì)被當(dāng)作參數(shù)再次傳遞給ENTRYPOINT
ENTRYPOINT ["/usr/sbin/nginx"]
docker build -t="roubin/static_web" . #構(gòu)建鏡像
docker run -i -t roubin/static_web -g "daemon off;" #參數(shù)會(huì)傳遞給ENTRYPOINT,從而以后臺(tái)方式啟動(dòng)Nginx
  1. WORKDIR:在容器內(nèi)部設(shè)置一個(gè)工作目錄,ENTRYPOINT或CMD等指令會(huì)在這個(gè)目錄下執(zhí)行
WORKDIR /opt/webapp/db
RUN bundle install
WORKDIR /opt/webapp
ENTRYPOINT [ "rackup" ]

注意:可以通過(guò)-w標(biāo)志在運(yùn)行時(shí)覆蓋目錄docker run -i -t -w /var/log ubuntu pwd

  1. ENV:用來(lái)在鏡像構(gòu)建過(guò)程中設(shè)置環(huán)境變量;這個(gè)新的環(huán)境變量可以在后續(xù)任何RUN指令中使用
ENV RVM_PATH /home/rvm/
RUN gem install unicorn

也能在其他指令中直接調(diào)用環(huán)境變量

ENV TARGET_DIR /opt/app
WORKDIR $TARGET_DIR

這些環(huán)境變量也會(huì)被持久保存到從我們的鏡像創(chuàng)建的任何容器中;也可使用docker run命令行的-e 標(biāo)志來(lái)傳遞環(huán)境變量

  1. USER:用來(lái)指定該鏡像會(huì)以什么用戶去運(yùn)行(不指定,默認(rèn)為root)
USER nginx
USER user:group
USER uid:gid

也可以在docker run命令中通過(guò)-u選項(xiàng)來(lái)覆蓋

  1. VOLUME:用來(lái)向基于鏡像創(chuàng)建的容器添加卷
    a.卷可以在容器間共享和重用
    b.對(duì)卷的修改是立時(shí)生效的
    c.對(duì)卷的修改不會(huì)對(duì)更新鏡像產(chǎn)生影響
    d.卷會(huì)一直存在直到?jīng)]有任何容器使用它
VOLUME ["/opt/project"] #創(chuàng)建一個(gè)名為/opt/project的掛載點(diǎn)
  1. ADD:用來(lái)將構(gòu)建環(huán)境下的文件和目錄復(fù)制到鏡像中。
ADD software.lic /opt/application/software.lic #將構(gòu)建目錄下的software.lic復(fù)制到鏡像中的/opt/application/software.lic

如果源文件是gzip/bzip2/xz等歸檔文件,會(huì)自動(dòng)解開并添加到目的地

ADD latest.tar.gz /var/www/wordpress/

注意:
a.不能對(duì)構(gòu)建目錄或上下文之外的文件進(jìn)行ADD操作
b.如果目的位置不存在,會(huì)自動(dòng)創(chuàng)建
c.ADD指令會(huì)使得構(gòu)建緩存無(wú)效

  1. COPY:只關(guān)心在構(gòu)建上下文中復(fù)制本地文件,不會(huì)去作文件提取和解壓
COPY conf.d/ /etc/apache2/ #將本地conf.d目錄中的文件復(fù)制到/etc/apache2目錄中
  1. ONBUILD:為鏡像添加觸發(fā)器,當(dāng)該鏡像被用作其他鏡像的基礎(chǔ)鏡像時(shí),觸發(fā)器會(huì)被執(zhí)行;可作鏡像模板功能
ONBUILD ADD . /app/src
ONBUILD RUN cd /app/src && make
ONBUILD ADD . /var/www/ #將構(gòu)建環(huán)境所在目錄下的內(nèi)容全部添加到鏡像中的/var/www/目錄下

注意:
a.使用docker inspect可查看
b.該命令只能被繼承使用一次
c.FROM、MAINTAINER和ONBUILD本身無(wú)法被調(diào)用

除非注明,肉餅博客文章均為原創(chuàng),轉(zhuǎn)載請(qǐng)以鏈接形式標(biāo)明本文地址   
本文地址:http://roubin.me/post/dockerfile-command/

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

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

  • 一、Docker創(chuàng)建鏡像的方式有兩種: 一種通過(guò)commit的方式:把做了一系列操作的容器關(guān)閉,然后利用docke...
    jie0112閱讀 3,920評(píng)論 0 3
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,770評(píng)論 0 120
  • Dockerfile文件中,除了有FROM指令和RUN指令外,還有幾個(gè)比較常用的指令 1、 COTY 復(fù)制文件 格...
    彩虹之夢(mèng)閱讀 696評(píng)論 0 0
  • 五、Docker 端口映射 無(wú)論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問(wèn)不到的。此外,除了...
    R_X閱讀 1,972評(píng)論 0 7
  • 梭子蟹,因頭胸甲呈梭子形,故名梭子,殼薄肉多,脂膏肥滿,味鮮美,營(yíng)養(yǎng)豐富。 有較高的營(yíng)養(yǎng)價(jià)值和經(jīng)濟(jì)價(jià)值。 ...
    北侖情閱讀 455評(píng)論 0 1

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