title: Differences Between Dockerfile Instructions in Shell and Exec Form
body: <p>What is the difference between <em>shell</em> and <em>exec</em> form for</p>
  <p><code>CMD</code>:</p>
  <pre><code>CMD python my_script.py arg
  </code></pre>
  <p>vs.</p>
  <pre><code>CMD [&quot;python&quot;, &quot;my_script.py&quot;, &quot;arg&quot;]
  </code></pre>
  <p><code>ENTRYPOINT</code>:</p>
  <pre><code>ENTRYPOINT ./bin/main
  </code></pre>
  <p>vs.</p>
  <pre><code>ENTRYPOINT [&quot;./bin/main&quot;]
  </code></pre>
  <p>and <code>RUN</code>:</p>
  <pre><code>RUN npm start
  </code></pre>
  <p>vs.</p>
  <pre><code>RUN [&quot;npm&quot;, &quot;start&quot;]
  </code></pre>
  <p><code>Dockerfile</code> instructions?</p>