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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

容器学习 之 dockerfile 命令(七)

發(fā)布時(shí)間:2024/2/28 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 容器学习 之 dockerfile 命令(七) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

dockerfile中常用的命令

  • FROM
    指定 base 鏡像。
  • MAINTAINER
    設(shè)置鏡像的作者,可以是任意字符串。
    COPY將文件從 build context 復(fù)制到鏡像。
  • COPY 支持兩種形式:
//注意:src 只能指定 build context 中的文件或目錄。 COPY src dest COPY ["src", "dest"]
  • ADD
    與 COPY 類似,從 build context 復(fù)制文件到鏡像。不同的是,如果 src 是歸檔文件(tar, zip, tgz, xz 等),文件會(huì)被自動(dòng)解壓到 dest。
  • ENV
    設(shè)置環(huán)境變量,環(huán)境變量可被后面的指令使用。例如:
ENV MY_VERSION 1.3 RUN apt-get install -y mypackage=$MY_VERSION
  • EXPOSE
    指定容器中的進(jìn)程會(huì)監(jiān)聽某個(gè)端口,Docker 可以將該端口暴露出來。我們會(huì)在容器網(wǎng)絡(luò)部分詳細(xì)討論。
  • VOLUME
    將文件或目錄聲明為 volume。我們會(huì)在容器存儲(chǔ)部分詳細(xì)討論。
  • WORKDIR
    為后面的 RUN, CMD, ENTRYPOINT, ADD 或 COPY 指令設(shè)置鏡像中的當(dāng)前工作目錄。
  • RUN
    在容器中運(yùn)行指定的命令。
  • CMD
    容器啟動(dòng)時(shí)運(yùn)行指定的命令。
    Dockerfile 中可以有多個(gè) CMD 指令,但只有最后一個(gè)生效。CMD 可以被 docker run 之后的參數(shù)替換。
  • ENTRYPOINT
    設(shè)置容器啟動(dòng)時(shí)運(yùn)行的命令。
    Dockerfile 中可以有多個(gè) ENTRYPOINT 指令,但只有最后一個(gè)生效。CMD 或 docker run 之后的參數(shù)會(huì)被當(dāng)做參數(shù)傳遞給 ENTRYPOINT。

下面我們來看一個(gè)較為全面的 Dockerfile:

root@ubuntu:/home/yj/docker/test1# ls bunch.tar.gz dockerfile tmpfile2 root@ubuntu:/home/yj/docker/test1# vim dockerfile # my dockerfile FROM centos MAINTAINER yangjin@qq.com WORKDIR /testdir RUN touch tmpfile1 COPY ["tmpfile2","."] ADD ["bunch.tar.gz","."] ENV WELCOME "you are in mu container,welcome!"
  • 讓centos鏡像作為base鏡像
  • 設(shè)置鏡像的作者
  • 設(shè)置工作目錄
  • 把build context 中的tmpfile2移到鏡像當(dāng)前目錄
  • 把build context的bunch.tar.gz解壓并移到當(dāng)前目錄
  • 設(shè)置WELCOME環(huán)境變量

結(jié)果展示:

[root@8af6a35aa71e testdir]# cd /testdir/ [root@8af6a35aa71e testdir]# ls bunch tmpfile1 tmpfile2

Shell 和 Exec 格式

CMD echo "Hello world" CMD ["/bin/echo", "Hello world"]

CMD 和 ENTRYPOINT 推薦使用 Exec 格式,因?yàn)橹噶羁勺x性更強(qiáng),更容易理解。RUN 則兩種格式都可以。

RUN,CMD,ENTRYPOITN的使用方法

  • 使用 RUN 指令安裝應(yīng)用和軟件包,構(gòu)建鏡像。
  • 如果 Docker 鏡像的用途是運(yùn)行應(yīng)用程序或服務(wù),比如運(yùn)行一個(gè) MySQL,應(yīng)該優(yōu)先使用 Exec 格式的 ENTRYPOINT 指令。
  • CMD 可為 ENTRYPOINT提供額外的默認(rèn)參數(shù),同時(shí)可利用 docker run 命令行替換默認(rèn)參數(shù)
  • 總結(jié)

    以上是生活随笔為你收集整理的容器学习 之 dockerfile 命令(七)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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