ググったらたくさんでてきますが、一応自分用の備忘録として残しておきます。
概要
RUN
も CMD
も両方とも Dockerfile に記載する命令です。
違いは、以下の通りという認識です。
RUN
- イメージ作成時に実行される。つまり、
docker build
コマンドでイメージを作成したとき、RUN
で実行されたものがで出来上がったイメージに反映された状態になる
- イメージ作成時に実行される。つまり、
CMD
- コンテナの起動時に実行される。つまり、イメージの中には入っておらず、
docker run
コマンド実行時に実行される
- コンテナの起動時に実行される。つまり、イメージの中には入っておらず、
その他の違い
大きな違いとして、 CMD
は最後の1行のみが実行されるという点があります。
これが曲者で、自分は結構ハマりました。
https://sleepless-se.net/2018/05/26/docker%E3%81%A7%E8%A4%87%E6%95%B0cmd%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
コメント