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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

语法和c区别_dockerfile语法

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

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

FROM

FROM是位于我們dockerfile命令的第一層,首先就會使用該命令。當然一個DokcerFile中存在多個鏡像時,可以多次使用FROM命令

語法:

FROM /FROM : //tag沒有的話默認是latestFROM ubuntu

MAINTAINER

可以理解為作者信息和維護者信息

語法:

MAINTAINER dockeruser MAINTAINER dockeruser dockeruser@gmail.com

RUN

用來運行我們所需要的指令。該命令是構建容器時運行的命令以及提交命令行的結果,RUN命令是直接跟shell命令,在linux系統中默認 /bin/sh -C windows中默認是 cmd /S /C

語法:

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

CMD

CMD是啟動容器時默認執行的命令。啟動容器需要執行的參數,并且一個DockerFile文件中最好只有一個該命令參數。多個話會把最后一個作為最終的目標,參數執行與RUN 運行類似。引號要使用是雙引號,原因是參數傳遞后docker用來解析為一個json array

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

LABEL

構建生成的鏡像的元數據標簽,一個容器可以有多個LABEL文件。

例子參考:

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

EXPOSE

聲明鏡像內服務所需要監聽的端口。暴露給外部使用。但是在使用的時候還需要加上-P 參數映射或者使用-p映射為指定端口

EXPOSE 22 EXPOSE 22 8080 9292

ENV

功能為設置環境變量,可以讓其他命令來使用此參數。并且還有使用docker inspect 查看這個環境變量值。

語法 :

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

在使用的時候就可以使用

ADD

復制命令,將文件復制到鏡像中去,

語法:

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

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

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

如果是一個文件夾了,復制整個目錄的內容,包括文件系統元數據

COPY

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

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

ENTRYPOINT

用來指定鏡像的默認入口,也是啟動的默認命令。

語法:

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

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

首先ENTRYPOINT不會被運行的command命令覆蓋,CMD指定的命令會被覆蓋

如果兩者同時存在,當CMD命令不是一個完整的執行命令時,那么CMD的命令參數會被作為ENTRYPOINT的參數,只一個完整的命令時,誰在最后誰執行。

VOLUME

創建數據卷的掛載點,將容器內的文件或者其他容器中的文件掛載在該容器中。

語法:

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

需要使用數據進行持久化需要該操作。容器使用的是AUFS文件系統。容器關閉的時候數據會丟失,那么數據持久化 就需要使用掛載點來操作。還有一點需要注意的是該命令創建的掛載點是無法指定主機上的目錄,自動生成的。

USER

用來指定運行容器時的用戶名或者UID

1. USER daemo2. USER UID

WORKDIR

用來配置工作目錄,對RUN,CMD,ENTRYPOINT,COPY,ADD生效,如果目錄不存在會創建,也可以設置多次。切換目錄的操作相當于是Linux系統中的cd

WORKDIR /home/ruiqiWORKDIR dataRUN pwdpwd執行的結果是//home/ruiqi/data當然如果存在環境變量的值也可以 解析環境變量ENV PATH /pathWORKDIR $PATH/ruiqiRUN pwd pwd 的顯示結果是/path/ruiqi

ARG

用來指定一些參數信息。當然該參數可以被 build時使用 --build-arg user =asdasda 指定參數

語法:

ARG name = valueARG user = fruiqiARG passwd =12313

ONBUILD

當該鏡像作為其他鏡像的基礎鏡像時,所設定的命令才會執行。

語法:

ONBUILD [INSTRUCTION]比如 ONBUILD RUN ls

STOPSIGNAL

容器退出的信號值,當容器退出的時候給系統發送什么樣的指令

STOPSIGNAL signal

HEALTHCHECK

進行容器的健康檢查。

語法有兩種:

1. HEALTHCHECK [OPTIONS] CMD command2. HEALTHCHECK NONE 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。