日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语法和c区别_dockerfile语法

發(fā)布時(shí)間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语法和c区别_dockerfile语法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上次寫了關(guān)于Dockerfile鏡像精簡之道之后,很多小伙伴找我問,dockerfile語法的一些東西,這邊文章就介紹一下dockerfile語法吧

FROM

FROM是位于我們dockerfile命令的第一層,首先就會(huì)使用該命令。當(dāng)然一個(gè)DokcerFile中存在多個(gè)鏡像時(shí),可以多次使用FROM命令

語法:

FROM /FROM : //tag沒有的話默認(rèn)是latestFROM ubuntu

MAINTAINER

可以理解為作者信息和維護(hù)者信息

語法:

MAINTAINER dockeruser MAINTAINER dockeruser dockeruser@gmail.com

RUN

用來運(yùn)行我們所需要的指令。該命令是構(gòu)建容器時(shí)運(yùn)行的命令以及提交命令行的結(jié)果,RUN命令是直接跟shell命令,在linux系統(tǒng)中默認(rèn) /bin/sh -C windows中默認(rèn)是 cmd /S /C

語法:

RUN command RUN [“executable”,“param1”,“param2”] #函數(shù)調(diào)用 都一個(gè)參數(shù)類似可執(zhí)行文件,后面是參數(shù) 使用exec 來執(zhí)行的 總的來說命令較長可以使用 來換行。RUN [“/bin/bash”, “-c”, “echo hello”]。RUN apt-get update && apt-get install -y x11vnc xvfb firefox

CMD

CMD是啟動(dòng)容器時(shí)默認(rèn)執(zhí)行的命令。啟動(dòng)容器需要執(zhí)行的參數(shù),并且一個(gè)DockerFile文件中最好只有一個(gè)該命令參數(shù)。多個(gè)話會(huì)把最后一個(gè)作為最終的目標(biāo),參數(shù)執(zhí)行與RUN 運(yùn)行類似。引號(hào)要使用是雙引號(hào),原因是參數(shù)傳遞后docker用來解析為一個(gè)json array

1. CMD ["executable","param1","param2"]2. CMD ["param1","param2"]3. CMD command param1 param2

LABEL

構(gòu)建生成的鏡像的元數(shù)據(jù)標(biāo)簽,一個(gè)容器可以有多個(gè)LABEL文件。

例子參考:

LABEL multi.label1="value1" multi.label2="value2" other="value3"

EXPOSE

聲明鏡像內(nèi)服務(wù)所需要監(jiān)聽的端口。暴露給外部使用。但是在使用的時(shí)候還需要加上-P 參數(shù)映射或者使用-p映射為指定端口

EXPOSE 22 EXPOSE 22 8080 9292

ENV

功能為設(shè)置環(huán)境變量,可以讓其他命令來使用此參數(shù)。并且還有使用docker inspect 查看這個(gè)環(huán)境變量值。

語法 :

1. ENV 2. ENV = ...ENV JAVA_HOME /path/java/src

在使用的時(shí)候就可以使用

ADD

復(fù)制命令,將文件復(fù)制到鏡像中去,

語法:

1. ADD ... 2. ADD ["",... ""]

其中 src 可以使本地文件也可以是壓縮文件還可以是url ,dest 是容器內(nèi)部的絕對(duì)路徑,也可以是相對(duì)于工作目錄的相對(duì)路徑。

ADD test relativeDir/ ADD test /relativeDirADD http://example.com/foobar /

如果是一個(gè)文件夾了,復(fù)制整個(gè)目錄的內(nèi)容,包括文件系統(tǒng)元數(shù)據(jù)

COPY

也是復(fù)制命令,不過該命令只能復(fù)制本地文件。

1. COPY ... 2. COPY ["",... ""]

ENTRYPOINT

用來指定鏡像的默認(rèn)入口,也是啟動(dòng)的默認(rèn)命令。

語法:

1. ENTRYPOINT ["executable", "param1", "param2"]2. ENTRYPOINT command param1 param2

從命令來看與我們的CMD命令十分的相似,但是他們兩者有不同的區(qū)別。

首先ENTRYPOINT不會(huì)被運(yùn)行的command命令覆蓋,CMD指定的命令會(huì)被覆蓋

如果兩者同時(shí)存在,當(dāng)CMD命令不是一個(gè)完整的執(zhí)行命令時(shí),那么CMD的命令參數(shù)會(huì)被作為ENTRYPOINT的參數(shù),只一個(gè)完整的命令時(shí),誰在最后誰執(zhí)行。

VOLUME

創(chuàng)建數(shù)據(jù)卷的掛載點(diǎn),將容器內(nèi)的文件或者其他容器中的文件掛載在該容器中。

語法:

VOLUME ["目錄"]1. VOLUME ["/home/log/"]2. VOLUME /home/log3. VOLUME /home/log /home/db

需要使用數(shù)據(jù)進(jìn)行持久化需要該操作。容器使用的是AUFS文件系統(tǒng)。容器關(guān)閉的時(shí)候數(shù)據(jù)會(huì)丟失,那么數(shù)據(jù)持久化 就需要使用掛載點(diǎn)來操作。還有一點(diǎn)需要注意的是該命令創(chuàng)建的掛載點(diǎn)是無法指定主機(jī)上的目錄,自動(dòng)生成的。

USER

用來指定運(yùn)行容器時(shí)的用戶名或者UID

1. USER daemo2. USER UID

WORKDIR

用來配置工作目錄,對(duì)RUN,CMD,ENTRYPOINT,COPY,ADD生效,如果目錄不存在會(huì)創(chuàng)建,也可以設(shè)置多次。切換目錄的操作相當(dāng)于是Linux系統(tǒng)中的cd

WORKDIR /home/ruiqiWORKDIR dataRUN pwdpwd執(zhí)行的結(jié)果是//home/ruiqi/data當(dāng)然如果存在環(huán)境變量的值也可以 解析環(huán)境變量ENV PATH /pathWORKDIR $PATH/ruiqiRUN pwd pwd 的顯示結(jié)果是/path/ruiqi

ARG

用來指定一些參數(shù)信息。當(dāng)然該參數(shù)可以被 build時(shí)使用 --build-arg user =asdasda 指定參數(shù)

語法:

ARG name = valueARG user = fruiqiARG passwd =12313

ONBUILD

當(dāng)該鏡像作為其他鏡像的基礎(chǔ)鏡像時(shí),所設(shè)定的命令才會(huì)執(zhí)行。

語法:

ONBUILD [INSTRUCTION]比如 ONBUILD RUN ls

STOPSIGNAL

容器退出的信號(hào)值,當(dāng)容器退出的時(shí)候給系統(tǒng)發(fā)送什么樣的指令

STOPSIGNAL signal

HEALTHCHECK

進(jìn)行容器的健康檢查。

語法有兩種:

1. HEALTHCHECK [OPTIONS] CMD command2. HEALTHCHECK NONE 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的语法和c区别_dockerfile语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。