プログラミング

DockerfileのCMDについて

投稿日:

Dockerfileに記載する「CMD」についてのまとめ。

いつもざっくり$ docker runするときにコマンド実行できるんだなあとしか考えて使っていなかったので、使い方や意味を自分なりにまとめます。

 

CMDとは。ざっくり解説

「CMD」とは、簡単に言うとDockerfile内に記載ができ、$ docker runを行ったときにそのコンテナでコマンドを実行できるものです。

ここで重要なのはDockerfileに書かずとも、$ docker runを行う際に引数でコマンドを渡せば同様のことが行えると言う点です。

 

$ docker run [オプション] イメージ [コマンド] [引数...]

 

ここの[コマンド]に指定すれば実行できます。

 

コマンドの上書き

上記の理由から、Dockerfile内に「CMD」で記載したコマンドは、$ docker run実行時に引数でコマンドを渡すと、その引数で渡したコマンドで上書きができます。

つまり、この場合はDockerfile内に記載した「CMD」は実行されません。

 

Dockerfileに記載する理由

引数で渡せるのにDockerfileに記載する理由としては、永続的にそのコマンドを利用したい。

もしくは、コマンドのデフォルト値を与えておきたい。このあたりになりますでしょうか。

 

  • コマンドの永続化
  • デフォルト値を与える

 

コマンドを繰り返し永続的に実行したい場合や、上書き可能なデフォルトのコマンドとして定義しておけます。

 

ちなみに、「CMD」とよく比較される「ENTRYPOINT」は上書きが行えないので、確実に実行したいコマンドはこちらに記載すると良いと思います。

 

 

Dockerの学習教材はUdemyのゼロからはじめる Dockerによるアプリケーション実行環境構築 がわかりやすくておすすめです。セール時に購入しちゃいましょう。

 

https://www.udemy.com/course/docker-k/

 

 

【厳選】Udemyでセール時に購入すべきオススメの動画Part2【どの分野にも役立つ】

エンジニアの皆さま!これからエンジニアを目指す皆さま!Udemyは有効に使っていますか?? 以前にUdemyでセール時に絶対買っておいた方が良い動画を分野別に分けて以下の記事で紹介しました。 &nbs ...

続きを見る

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-プログラミング
-,

Copyright© クラインの備忘壺 , 2019 All Rights Reserved.