转载Dockerfile 中 RUN, CMD, ENTRYPOINT 的区别

<span class="hljs-keyword">RUN<span class="bash"> &#x6307;&#x4EE4;&#xFF1A;&#x7528;&#x4E8E;&#x6307;&#x5B9A; docker build &#x8FC7;&#x7A0B;&#x4E2D;&#x8981;&#x8FD0;&#x884C;&#x7684;&#x547D;&#x4EE4;&#x3002;
    &#x8BED;&#x6CD5;&#x683C;&#x5F0F;&#xFF1A;
     <span class="hljs-keyword">RUN<span class="bash"> <<span class="hljs-built_in">command> &#x6216;
     <span class="hljs-keyword">RUN<span class="bash"> [<span class="hljs-string">"<executeable>",<span class="hljs-string">"<param1>",<span class="hljs-string">"param2",...]
     <span class="hljs-keyword">RUN<span class="bash"> [<span class="hljs-string">"/bin/bash",<span class="hljs-string">"-c",<span class="hljs-string">"<executeable>",<span class="hljs-string">"param1",<span class="hljs-string">"param2",...]

    &#x4F8B;&#x5982;&#xFF1A;
        <span class="hljs-keyword">RUN<span class="bash"> yum install iproute nginx && yum clean all
</span></span></span></span></executeable></span></span></span></span></span></span></param1></span></executeable></span></span></span></span></span></span></span></span>
<span class="hljs-keyword">CMD<span class="bash"> &#x6307;&#x4EE4;&#xFF1A;&#x7C7B;&#x4F3C;&#x4E8E; RUN &#x6307;&#x4EE4;&#xFF0C;&#x7528;&#x4E8E;&#x8FD0;&#x884C;&#x7A0B;&#x5E8F;&#xFF0C;&#x4F46;&#x4E8C;&#x8005;&#x8FD0;&#x884C;&#x7684;&#x65F6;&#x95F4;&#x70B9;&#x4E0D;&#x540C;&#xFF1B;CMD &#x5728;docker run &#x65F6;&#x8FD0;&#x884C;&#xFF0C;&#x800C;&#x975E;docker build;
<span class="hljs-keyword">CMD<span class="bash"> &#x6307;&#x4EE4;&#x7684;&#x9996;&#x8981;&#x76EE;&#x7684;&#x5728;&#x4E8E;&#x4E3A;&#x542F;&#x52A8;&#x7684;&#x5BB9;&#x5668;&#x6307;&#x5B9A;&#x9ED8;&#x8BA4;&#x8981;&#x8FD0;&#x884C;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x7A0B;&#x5E8F;&#x8FD0;&#x884C;&#x7ED3;&#x675F;&#xFF0C;&#x5BB9;&#x5668;&#x4E5F;&#x5C31;&#x7ED3;&#x675F;&#xFF1B;&#x6CE8;&#x610F;: CMD &#x6307;&#x4EE4;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#x53EF;&#x88AB; docker run &#x547D;&#x4EE4;&#x884C;&#x53C2;&#x6570;&#x4E2D;&#x6307;&#x5B9A;&#x8981;&#x8FD0;&#x884C;&#x7684;&#x7A0B;&#x5E8F;&#x6240;&#x8986;&#x76D6;&#x3002;
    &#x8BED;&#x6CD5;&#x683C;&#x5F0F;&#xFF1A;
    <span class="hljs-keyword">CMD<span class="bash"> <<span class="hljs-built_in">command> &#x6216;
    <span class="hljs-keyword">CMD<span class="bash"> [<span class="hljs-string">"<executeable>",<span class="hljs-string">"<param1>",<span class="hljs-string">"<param2>",...]
    <span class="hljs-keyword">CMD<span class="bash"> [<span class="hljs-string">"<param1>",<span class="hljs-string">"<param2>",...] &#x8BE5;&#x5199;&#x6CD5;&#x662F;&#x4E3A; ENTRYPOINT &#x6307;&#x4EE4;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#x63D0;&#x4F9B;&#x9ED8;&#x8BA4;&#x53C2;&#x6570;&#xFF1B;
&#x6CE8;&#x610F;&#xFF1A;&#x5982;&#x679C; dockerfile &#x4E2D;&#x5982;&#x679C;&#x5B58;&#x5728;&#x591A;&#x4E2A;<span class="hljs-keyword">CMD<span class="bash">&#x6307;&#x4EE4;&#xFF0C;&#x4EC5;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x751F;&#x6548;&#xFF1B;

    &#x4F8B;&#x5982;&#xFF1A;
            <span class="hljs-keyword">CMD<span class="bash"> [<span class="hljs-string">"/usr/sbin/httpd",<span class="hljs-string">"-c",<span class="hljs-string">"/etc/httpd/conf/httpd.conf"]
</span></span></span></span></span></span></span></param2></span></param1></span></span></span></param2></span></param1></span></executeable></span></span></span></span></span></span></span></span></span></span>
<span class="hljs-keyword">ENTRYPOINT<span class="bash"> &#x6307;&#x4EE4;&#xFF1A;&#x7C7B;&#x4F3C;&#x4E8E; CMD &#x6307;&#x4EE4;&#xFF0C;&#x4F46;&#x5176;&#x4E0D;&#x4F1A;&#x88AB; docker run &#x7684;&#x547D;&#x4EE4;&#x884C;&#x53C2;&#x6570;&#x6307;&#x5B9A;&#x7684;&#x6307;&#x4EE4;&#x6240;&#x8986;&#x76D6;&#xFF0C;&#x800C;&#x4E14;&#x8FD9;&#x4E9B;&#x547D;&#x4EE4;&#x884C;&#x53C2;&#x6570;&#x4F1A;&#x88AB;&#x5F53;&#x4F5C;&#x53C2;&#x6570;&#x9001;&#x7ED9; ENTRYPOINT &#x6307;&#x4EE4;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#xFF1B;&#x4F46;&#x662F;, &#x5982;&#x679C;&#x8FD0;&#x884C; docker run &#x65F6;&#x4F7F;&#x7528;&#x4E86; --entrypoint &#x9009;&#x9879;&#xFF0C;&#x6B64;&#x9009;&#x9879;&#x7684;&#x53C2;&#x6570;&#x53EF;&#x5F53;&#x4F5C;&#x8981;&#x8FD0;&#x884C;&#x7684;&#x7A0B;&#x5E8F;&#x8986;&#x76D6; ENTRYPOINT &#x6307;&#x4EE4;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#xFF1B;
    &#x8BED;&#x6CD5;&#x683C;&#x5F0F;&#xFF1A;
    <span class="hljs-keyword">ENTRYPOINT<span class="bash"> <<span class="hljs-built_in">command> &#x6216;
    <span class="hljs-keyword">ENTRYPOINT<span class="bash"> [<span class="hljs-string">"<executeable>",<span class="hljs-string">"<param1>",<span class="hljs-string">"<param2>",...]

    &#x4F8B;&#x5982;&#xFF1A;
        <span class="hljs-keyword">CMD<span class="bash"> [<span class="hljs-string">"-c"]
        <span class="hljs-keyword">ENTRYPOINT<span class="bash"> [<span class="hljs-string">"top",<span class="hljs-string">"-b"]
</span></span></span></span></span></span></span></param2></span></param1></span></executeable></span></span></span></span></span></span></span></span>
<span class="hljs-keyword">ENTRYPOINT<span class="bash"> &#x4E0E; CMD &#x533A;&#x522B;

&#x5982;&#xFF1A;
<span class="hljs-keyword">FROM ubuntu:<span class="hljs-number">14.10
<span class="hljs-keyword">ENTRYPOINT<span class="bash"> [<span class="hljs-string">"top", <span class="hljs-string">"-b"]
<span class="hljs-keyword">CMD<span class="bash"> [<span class="hljs-string">"-c"]

&#x628A;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x53D8;&#x52A8;&#x7684;&#x53C2;&#x6570;&#x5199;&#x5230; <span class="hljs-keyword">CMD<span class="bash"> &#x91CC;&#x9762;&#x3002;&#x7136;&#x540E;&#x4F60;&#x53EF;&#x4EE5;&#x5728; docker run &#x91CC;&#x6307;&#x5B9A;&#x53C2;&#x6570;&#xFF0C;&#x8FD9;&#x6837; CMD &#x91CC;&#x7684;&#x53C2;&#x6570;(&#x8FD9;&#x91CC;&#x662F;-c) &#x5C31;&#x4F1A;&#x88AB;&#x8986;&#x76D6;&#x6389;&#x800C; ENTRYPOINT &#x91CC;&#x7684;&#x4E0D;&#x88AB;&#x8986;&#x76D6;&#x3002;

&#x6CE8;&#x610F;&#xFF1A;
<span class="hljs-keyword">ENTRYPOINT<span class="bash">&#x6709;&#x4E24;&#x79CD;&#x5199;&#x6CD5;&#xFF0C;&#x7B2C;&#x4E8C;&#x79CD;(shell form)&#x4F1A;&#x5C4F;&#x853D;&#x6389; docker run &#x65F6;&#x540E;&#x9762;&#x52A0;&#x7684;&#x547D;&#x4EE4;&#x548C; CMD &#x91CC;&#x7684;&#x53C2;&#x6570;&#x3002;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

Original: https://www.cnblogs.com/saolv/p/12852818.html
Author: 扫驴
Title: 转载Dockerfile 中 RUN, CMD, ENTRYPOINT 的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535001/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球