中文字幕在线中文乱码不卡24_国产在线网站_国产精品扒开腿做爽爽爽的事情_亚洲男人A∨资源网

<ruby id="hpp6e"></ruby>

    <address id="hpp6e"><var id="hpp6e"></var></address>
    <address id="hpp6e"><nav id="hpp6e"><center id="hpp6e"></center></nav></address>

    1. 資訊財經(jīng)娛樂科技汽車時尚企業(yè)游戲商訊消費購物微商

      Docker鏡像和Dockerfile詳解

      2020-03-29 09:11:09 來源: 閱讀:-

      鏡像是容器的模板,容器是鏡像運行的實例,可以類比為模具和實物的關系或者編程語言里面&#34;類&#34;和&#34;實例&#34;的關系,鏡像是靜態(tài)的定義,容器是動態(tài)運行的實體

      一、鏡像的構成

      hello-world

      Hello-world是docker官方提供的一個很小的鏡像,用來測試docker是否正確運行

      $ docker run hello-world$ docker images

      這個鏡像才1.04kb,我們看下他的Dockerfile描述

      FROM scratchCOPY hello /CMD [&#34;/hello&#34;]

      (1) FROM scratch 說明鏡像是白手起家,從0開始構建

      (2) COPY hello / 將文件&#34;hello&#34;復制到鏡像的目錄

      (3) CMD [&#34;/hello&#34;] 容器啟動時執(zhí)行 /hello

      二、Dockerfile的構建

      概念:Dockerfile 是一個包含創(chuàng)建鏡像所有命令的文本文件,通過docker build命令可以根據(jù) Dockerfile 的內(nèi)容構建我們自己需要的鏡像

      base鏡像:

      a、不依賴其他鏡像,從scratch開始

      b、以其他鏡像為基礎擴展

      Dockerfile常用指令,主要分為配置指令和操作指令,一圖展示各種命令


      dockerfile常用命令

      配置指令

      2.1、ARG(定義鏡像創(chuàng)建過程中的變量)

      用法:ARG &lt;name&gt;[&lt;default value&gt;]

      2.2、FROM

      用法:FROM &lt;image&gt;
      • FROM指定構建鏡像的基礎源鏡像,如果本地沒有該鏡像,默認會從 DockerHub上拉取鏡像
      • FROM scratch 說明鏡像是從0開始構建,不依賴其他鏡像
      • FROM可以在一個 Dockerfile 中出現(xiàn)多次,如果有需求在一個 Dockerfile 中創(chuàng)建多個鏡像

      2.3、LABEL

      用法:LABEL &lt;key&gt;=&lt;value&gt; &lt;key&gt;=&lt;value&gt; &lt;key&gt;=&lt;value&gt;

      例如:LABEL version=&#34;l.0.0-rc3&#34;

      LABEL author=&#34;yeasy@github&#34; date=&#34;2020-01-01&#34;

      2.4、EXPOSE(聲明鏡像內(nèi)服務監(jiān)聽的端口)

      用法:EXPOSE &lt;port&gt;

      例如:EXPOSE 22 80 8443

      2.5、ENV

      用法:ENV &lt;key&gt; &lt;value&gt;或 ENV &lt;key&gt;=&lt;value&gt;

      例如:

      ENV APP_VERSION=1.0.0

      ENV APP_HOME=/usr/local/bin

      ENV PATH $PATH:/usr/local/bin

      2.6、ENTRYPOINT

      支持兩種格式:

      □ ENTRYPOINT [&#34;executable&#34;, &#34;paraml &#34;, &#34;param2&#34;]:exec 調(diào)用執(zhí)行;

      □ ENTRYPOINT command param 1 param2: shell 中執(zhí)行;

      每個Dockerfile 中只能有一個ENTRYPOINT, 當指定多個時,只有最后一個起效。

      2.7、WORKDIR

      指定工作目錄

      用法:WORKDIR &lt;PATH&gt;

      WORKDIR /root/test

      操作指令

      2.8、RUN

      用法:RUN &lt;command&gt;

      例如:

      RUN apt-get update \

      &amp;&amp; apt-get install -y libsnappy-dev zliblg-dev libbz2-dev \

      &amp;&amp; rm -rf /var/cache/apt

      2.9、CMD(啟動容器時指定默認執(zhí)行的命令)

      用法:CMD command paraml param2 :在默認的Shell 中執(zhí)行

      每個Dockerfile 只能有一條CMD 命令。如果指定了多條命令,只有最后一條會被執(zhí)行

      2.10、ADD

      格式為ADD &lt;src&gt; &lt;dest&gt;

      COPY的作用和ADD類似,這里不再贅述

      三、通過示例練習Dockerfile

      # This my first nginx Dockerfile# Version 1.0# Base images 基礎鏡像FROM centos#MAINTAINER 維護者信息MAINTAINER pythontaotao#ENV 設置環(huán)境變量ENV PATH /usr/local/nginx/sbin:$PATH#ADD  文件放在當前目錄下,拷過去會自動解壓ADD nginx-1.8.0.tar.gz /usr/local/  ADD epel-release-latest-7.noarch.rpm /usr/local/  #RUN 執(zhí)行以下命令 RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpmRUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre &amp;&amp; yum clean allRUN useradd -s /sbin/nologin -M www#WORKDIR 相當于cdWORKDIR /usr/local/nginx-1.8.0 RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre &amp;&amp; make &amp;&amp; make installRUN echo &#34;daemon off;&#34; &gt;&gt; /etc/nginx.conf#EXPOSE 映射端口EXPOSE 80#CMD 運行以下命令CMD [&#34;nginx&#34;]

      推薦閱讀:旗龍網(wǎng)

      查看心情排行你看到此篇文章的感受是:


      • 支持

      • 高興

      • 震驚

      • 憤怒

      • 無聊

      • 無奈

      • 謊言

      • 槍稿

      • 不解

      • 標題黨
      要聞排行
      精彩推薦