最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Dockerfile常用命令的使用簡(jiǎn)介

 更新時(shí)間:2021年04月19日 09:53:46   作者:DBA隨筆  
這篇文章主要介紹了Dockerfile常用命令的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用Docker,感興趣的朋友可以了解下

   之前的文章中,我們已經(jīng)說(shuō)了RUN、FROM、MAINTAINER、EXPOSE等一些DockerFile的相關(guān)命令,今天我們來(lái)看DockerFile的其他命令介紹。

01 CMD

CMD命令用于指定一個(gè)容器啟動(dòng)的時(shí)候需要運(yùn)行的命令。它和RUN指令有點(diǎn)類似,但是不同之處在于:

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

CMD指令是指定容器被啟動(dòng)的時(shí)候,要運(yùn)行的指令。舉例:

docker run -it  container_name  /bin/ls

這個(gè)命令是我們啟動(dòng)一個(gè)容器,并且運(yùn)行/bin/ls

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

CMD [ "/bin/ls" ]

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

如果我們?cè)贒ockerFile中使用了CMD指令,則docker run命令之后會(huì)直接運(yùn)行CMD指令,例如:

docker run -it container_name

會(huì)在啟動(dòng)這個(gè)容器之后,直接運(yùn)行/bin/ls命令。

02 ENTRYPOINT

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

03 WORKDIR

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

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

WORKDIR  /data1/xxxxx

RUN xxxxx

RUN xxxxxx

WORKDIR /data2/xxxxx

RUN xxxxx

RUN xxxxx

它是不斷切換目錄的一個(gè)工具。

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

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

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

04 ENV

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

ENV  PYRHON_HOME  /usr/bin/python

它可以跟上面的WORKDIR搭配起來(lái),例如:

ENV  PYRHON_HOME  /usr/bin/python

WORKDIR   $PYTHON_HOME

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

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

05 USER

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

USER mysql

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

USER user

USER user:group

USER uid

USER uid:gid

有兩點(diǎn)需要注意:

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

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

06 VOLUME

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

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

2、一個(gè)容器不必和其他容器共享卷

3、對(duì)卷的修改是立即生效的

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

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

VOLUME [ "/volume" ]

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

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

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

07 ADD

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

ADD aaa.txt  /data1/aaa.txt

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

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

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

08 COPY

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

需要注意:

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

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

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

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

相關(guān)文章

  • IDEA使用Docker插件(菜鳥教程)

    IDEA使用Docker插件(菜鳥教程)

    本文主要介紹了IDEA使用Docker插件,文中通過(guò)圖文示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • docker部署訪問(wèn)postgres數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法

    docker部署訪問(wèn)postgres數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法

    本文主要介紹了docker部署訪問(wèn)postgres數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • chatgpt-web之docker打包流程

    chatgpt-web之docker打包流程

    這篇文章主要介紹了chatgpt-web中docker的打包流程,文中有詳細(xì)的代碼示例,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-05-05
  • docker-compose部署nginx教程

    docker-compose部署nginx教程

    文章介紹了如何安裝和配置docker-compose,創(chuàng)建一個(gè)Nginx容器,并通過(guò)docker-compose.yml文件進(jìn)行配置,包括映射文件夾和自定義轉(zhuǎn)發(fā)配置,最后,提供了重啟和配置生效的腳本
    2025-01-01
  • Docker 常用命令整理及使用注意事項(xiàng)總結(jié)

    Docker 常用命令整理及使用注意事項(xiàng)總結(jié)

    這篇文章主要介紹了Docker 常用命令整理及使用注意事項(xiàng)總結(jié)的相關(guān)資料,這里整理了Docker 的常用命令,說(shuō)明這些命令是什么意思及使用方法,需要的朋友可以參考下
    2016-12-12
  • Docker系列學(xué)習(xí)之Swarm mode管理節(jié)點(diǎn)常用命令詳解

    Docker系列學(xué)習(xí)之Swarm mode管理節(jié)點(diǎn)常用命令詳解

    這篇文章主要為大家介紹了Docker系列學(xué)習(xí)之Swarm mode管理節(jié)點(diǎn)常用命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Docker-Compose搭建Redis集群的實(shí)現(xiàn)教程

    Docker-Compose搭建Redis集群的實(shí)現(xiàn)教程

    本文主要介紹了Docker-Compose搭建Redis集群的實(shí)現(xiàn)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • idea使用docker插件實(shí)現(xiàn)一鍵自動(dòng)化部署

    idea使用docker插件實(shí)現(xiàn)一鍵自動(dòng)化部署

    本文主要介紹了idea使用docker插件實(shí)現(xiàn)一鍵自動(dòng)化部署,文中通過(guò)圖文介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Docker 查詢、停止、刪除和重啟容器的詳細(xì)過(guò)程

    Docker 查詢、停止、刪除和重啟容器的詳細(xì)過(guò)程

    這篇文章主要介紹了Docker 查詢、停止、刪除和重啟容器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • docker如何為容器指定虛擬網(wǎng)卡或IP

    docker如何為容器指定虛擬網(wǎng)卡或IP

    在Docker中,可以通過(guò)自定義網(wǎng)絡(luò)和--network標(biāo)志將容器綁定到特定的虛擬網(wǎng)卡或網(wǎng)絡(luò)接口,此外,還可以使用host和macvlan等其他網(wǎng)絡(luò)驅(qū)動(dòng),在使用這些模式時(shí),需要注意一些注意事項(xiàng)
    2025-01-01

最新評(píng)論

镇雄县| 宜君县| 灵台县| 泌阳县| 贡觉县| 绥江县| 宝山区| 满城县| 宁强县| 裕民县| 平武县| 万载县| 武强县| 海晏县| 宜昌市| 涿州市| 五指山市| 宜宾市| 南陵县| 扶沟县| 云林县| 宣汉县| 柞水县| 沙河市| 青岛市| 腾冲县| 秦安县| 仙居县| 凤庆县| 博白县| 永靖县| 穆棱市| 正阳县| 凤台县| 巴林左旗| 沅江市| 东源县| 云浮市| 兴宁市| 革吉县| 白沙|