中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有哪些常用的Dockerfile命令

發布時間:2021-04-19 16:26:36 來源:億速云 閱讀:214 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關有哪些常用的Dockerfile命令,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

01 CMD

CMD命令用于指定一個容器啟動的時候需要運行的命令。它和RUN指令有點類似,但是不同之處在于:

RUN指令是鏡像被構建的時候,需要執行的命令;

CMD指令是指定容器被啟動的時候,要運行的指令。舉例:

docker run -it  container_name  /bin/ls

這個命令是我們啟動一個容器,并且運行/bin/ls

它相當于我們手工進入docker中執行ls命令。在DockerFile中可以使用下面的命令進行代替:

CMD [ "/bin/ls" ]

需要注意的是,在DockerFile中只能指定一條CMD命令,即使我們指定了多條,也只有最后一條能被最終執行。

如果我們在DockerFile中使用了CMD指令,則docker run命令之后會直接運行CMD指令,例如:

docker run -it container_name

會在啟動這個容器之后,直接運行/bin/ls命令。

02 ENTRYPOINT

   這個命令和上面的CMD命令很像,不同之處在于,docker run命令后面指定的任何參數都會被當做參數再次傳遞給ENTRYPOINT指令中的命令。

03 WORKDIR

   WORKDIR指令用來在從鏡像創建一個新容器時,在容器內部設置一個工作目錄。ENTRYPOINT或者CMD命令會在這個目錄下執行。

    這條命令往往在DockerFile的最前面出現,為后續一系列的命令設置工作目錄。在指定完成某些命令之后,也可以通過這個命令來切換當前的目錄。所以,通常情況下,這個WORKDIR命令最常見的使用方法應該是下面這樣:

WORKDIR  /data1/xxxxx

RUN xxxxx

RUN xxxxxx

WORKDIR /data2/xxxxx

RUN xxxxx

RUN xxxxx

它是不斷切換目錄的一個工具。

如果我們在DockerFile中寫明了目錄,但是在docker run的時候不想使用這個目錄應該怎么辦?

答案是使用docker run -w /var/dir1

使用-w參數之后,會使用/var/dir1來覆蓋我們DockerFile中的路徑。

04 ENV

   ENV指令用來在生成DockerFile的過程中指定環境變量。例如:

ENV  PYRHON_HOME  /usr/bin/python

它可以跟上面的WORKDIR搭配起來,例如:

ENV  PYRHON_HOME  /usr/bin/python

WORKDIR   $PYTHON_HOME

還可以在使用ENV命令生成的容器中,使用env命令,來查看當前容器的環境變量,便可以看到我們設置好的PYRHON_HOME的值。

除了這種方法之外,我們可以使用docker -e的命令來傳遞環境變量,但是這種方法傳遞的環境變量,只在運行的時候有效。

05 USER

    USER指令用來指定鏡像會以什么樣的用戶來執行。例如:

USER mysql

當然,還可以使用

USER user

USER user:group

USER uid

USER uid:gid

有兩點需要注意:

1、可以使用docker run中的-u指令去覆蓋DockerFile中的USER選項;

2、如果不指定USER選項,則默認是root用戶

06 VOLUME

  VOLUME指令用來向基于鏡像創建的容器添加卷。一個卷可以存在于一個或者多個容器內的特定目錄。這個目錄可以提供共享數據或者對數據進行持久化的功能,例如:

1、卷可以在容器間共享和重用

2、一個容器不必和其他容器共享卷

3、對卷的修改是立即生效的

4、卷會一直存在,直到沒有任何容器需要他

這個功能可以讓我們將部分代碼或者數據添加到鏡像中,而不是提交到鏡像中。這樣會大大縮減鏡像的大小。它允許我們在多個容器間共享這些內容,所以VOLUME常常用來測試容器正確性。

VOLUME [ "/volume" ]

這條命令將會為使用此鏡像創建的容器創建一個名字為/volume的掛載點。

也可以使用數組的方式創建多個掛載點:

VOLUME [ "/data1","/data2" ]

07 ADD

   ADD命令用來將構建環境下的文件和目錄復制到鏡像中。ADD命令使用的過程中需要文件的源位置和目標位置,如下:

ADD aaa.txt  /data1/aaa.txt

這條命令,會將鏡像構建目錄下的aaa.txt文件復制到鏡像中的/data1/aaa.txt 目錄下。源文件除了可以是構建環境上下文中的一個文件,也可以是一個URL。

在ADD文件的過程中,如果目的地址是以/結尾,那么DockerFile會認為源位置是一個目錄,反之則認為源文件是一個文件。

還有一點需要注意:當源文件是一個本地歸檔文件的時候,例如tar.gz,則docker 會將其解壓到目標文件下。

08 COPY

   COPY命令非常類似于ADD,和ADD的不同在于COPY不支持URL方法,也不會主動去解壓文件,COPY指令的目的位置必須是容器內部的一個絕對路徑。

需要注意:

1、任何由該命令創建的文件或者目錄的UID和GID都會被設置成0

2、如果目的位置不存在,Docker將會自動創建所有需要的目錄結構。就像mkdir -p那樣。

上述就是小編為大家分享的有哪些常用的Dockerfile命令了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

舒城县| 富民县| 旬邑县| 宜宾市| 开远市| 西充县| 郓城县| 崇文区| 图木舒克市| 沙河市| 汝州市| 元朗区| 东辽县| 枣阳市| 岳阳市| 吉木萨尔县| 富阳市| 奉节县| 甘谷县| 左云县| 二连浩特市| 宁都县| 青阳县| 莆田市| 南皮县| 阜康市| 武定县| 许昌县| 尚志市| 东阿县| 神池县| 桃园市| 汝阳县| 旬阳县| 茶陵县| 西丰县| 黔西县| 五台县| 栾川县| 屯门区| 苏尼特左旗|