Torihaji's Growth Diary

Little by little, no hurry.

DockerFile を倒したい

はじめに

みなさん、こんにちは torihaziです。

今日から DockerFileを学びます。

まだまだ荒削りですが、どんどんいきたいと思います!!

letugo

DockerFile。

DockerImageを作成するために必要なテキストファイルのことです。

ファイル名は "Dockerfile"というものである必要があります。(※他でもいけるそうです。)

決められた形式で記述する必要があります。

これを見るとどういうDockerImageが作られているか分かるようになります。

書き方

書式の基本は

Instruction arguments

Instruction は 動詞のようなイメージで argumentsは目的語に近いようなイメージです。

Instructionは

  • FROM
  • RUN
  • CMD

の3つが基本です。

これをまずはしっかり理解する必要があります。

FROM

DockerfileはFROMから書き始めます。

どのDockerImageをベースとして新しいDockerImageを作っていくのか

最初に基盤となるDockerImageを指定する事ができます。

RUN

次に指定した文字列をLinuxのコマンドとして実行する事ができます。

RUNを使えば、自分の好きなようにDockerImageをカスタマイズする事ができます。

どういうことをカスタマイズするというかというと必要なソフトウェアをインストールする

という事が該当します。

ただRUNを書くと同時にlayerというものが追加され、DockerImage自体のファイルが肥大化します。

それを防ぐためにはなるべくRUNを最小限な使用にとどめる事が必要です。

例えばコマンド自体を &&で区切って記述する事です。

&&というのはLinux演算子の1つで A && Bというような使い方をします。

意味はAが成功したら Bを続けて実行するというものです。

CMD

コンテナのデフォルトのコマンドを指定する事ができます。

例えばdocker run -it ubnutu bashとせずにdocker run -it ubuntuとしても

bashが実行されていましたよね。

あれは デフォルトのコマンドがbashであったからです。

DockerfileからDockerImageを作る

Dockerfileがあるディレクトリに移動して、docker bulid .をすることで

カレントディレクトリ( . )からDockerfileを探してDockerImageを作成してくれます。

作成されたDockerImageは danglingイメージとなります。

つまり作っただけでぶら下がっているようなイメージのことです。

終わりに

書いてはみましたが。

少し、明日読み返してみようかと思います。

ドバッと書いたので。

少しづつ校正していきます。