成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Dockerfile常用命令的使用簡介

目錄

成都創(chuàng)新互聯(lián)公司專業(yè)提供簡陽服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買簡陽服務(wù)器托管服務(wù),并享受7*24小時金牌售后服務(wù)。

   ,我們已經(jīng)說了RUN、FROM、MAINTAINER、EXPOSE等一些DockerFile的相關(guān)命令,今天我們來看DockerFile的其他命令介紹。

01 CMD

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

RUN指令是鏡像被構(gòu)建的時候,需要執(zhí)行的命令;

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

docker run -it container_name /bin/ls

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

它相當(dāng)于我們手工進入docker中執(zhí)行l(wèi)s命令。在DockerFile中可以使用下面的命令進行代替:

CMD [ "/bin/ls" ]

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

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

docker run -it container_name

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

02 ENTRYPOINT

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

03 WORKDIR

   WORKDIR指令用來在從鏡像創(chuàng)建一個新容器時,在容器內(nèi)部設(shè)置一個工作目錄。ENTRYPOINT或者CMD命令會在這個目錄下執(zhí)行。

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

WORKDIR /data1/xxxxxRUN xxxxxRUN xxxxxxWORKDIR /data2/xxxxxRUN xxxxxRUN xxxxx

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

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

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

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

04 ENV

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

ENV PYRHON_HOME /usr/bin/python

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

ENV PYRHON_HOME /usr/bin/pythonWORKDIR $PYTHON_HOME

還可以在使用ENV命令生成的容器中,使用env命令,來查看當(dāng)前容器的環(huán)境變量,便可以看到我們設(shè)置好的PYRHON_HOME的值。

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

05 USER

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

USER mysql

當(dāng)然,還可以使用

USER userUSER user:groupUSER uidUSER uid:gid

有兩點需要注意:

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

2、如果不指定USER選項,則默認(rèn)是root用戶

06 VOLUME

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

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

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

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

4、卷會一直存在,直到?jīng)]有任何容器需要他

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

VOLUME [ "/volume" ]

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

也可以使用數(shù)組的方式創(chuàng)建多個掛載點:

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

   ADD命令用來將構(gòu)建環(huán)境下的文件和目錄復(fù)制到鏡像中。ADD命令使用的過程中需要文件的源位置和目標(biāo)位置,如下:

ADD aaa.txt /data1/aaa.txt

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

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

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

08 COPY

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

需要注意:

1、任何由該命令創(chuàng)建的文件或者目錄的UID和GID都會被設(shè)置成0

2、如果目的位置不存在,Docker將會自動創(chuàng)建所有需要的目錄結(jié)構(gòu)。就像mkdir -p那樣。

    今天的內(nèi)容就到這里吧,可能看著比較干,后續(xù)我會補充案例,來對這些命令進行說明。

以上就是Dockerfile常用命令的使用簡介的詳細內(nèi)容,更多關(guān)于Dockerfile命令的使用的資料請關(guān)注腳本之家其它相關(guān)文章!

網(wǎng)站題目:Dockerfile常用命令的使用簡介
路徑分享:http://jinyejixie.com/article2/chic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、品牌網(wǎng)站制作、網(wǎng)站建設(shè)App設(shè)計、微信小程序、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
巴中市| 灵丘县| 迁安市| 桐柏县| 东安县| 贵德县| 宁德市| 大理市| 东阳市| 岗巴县| 香河县| 同江市| 济南市| 永城市| 偃师市| 南昌市| 衡阳县| 龙泉市| 梅河口市| 仁怀市| 城固县| 伊宁市| 石嘴山市| 甘泉县| 大英县| 湘乡市| 达尔| 石屏县| 东乡县| 昌宁县| 石景山区| 长岛县| 陇西县| 台北市| 和林格尔县| 阜南县| 辽源市| 额济纳旗| 玉屏| 寿阳县| 顺平县|