Dockerfile の RUN と CMD の違いについて

コンテナ

ググったらたくさんでてきますが、一応自分用の備忘録として残しておきます。

概要

RUNCMD も両方とも Dockerfile に記載する命令です。

違いは、以下の通りという認識です。

  • RUN
    • イメージ作成時に実行される。つまり、docker build コマンドでイメージを作成したとき、RUN で実行されたものがで出来上がったイメージに反映された状態になる
  • CMD
    • コンテナの起動時に実行される。つまり、イメージの中には入っておらずdocker run コマンド実行時に実行される

その他の違い

大きな違いとして、 CMD は最後の1行のみが実行されるという点があります。

これが曲者で、自分は結構ハマりました。

Dockerで複数CMDを実行する方法
こんばんは、エンジニアの眠れない夜です。 Dockerで複数CMDを利用したい人のための簡単な解決方法です。 …

コメント

タイトルとURLをコピーしました