はじめに
みなさん、こんにちは 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イメージとなります。
つまり作っただけでぶら下がっているようなイメージのことです。
終わりに
書いてはみましたが。
少し、明日読み返してみようかと思います。
ドバッと書いたので。
少しづつ校正していきます。