##Dockerfileとは
Docker imageを作る上での設計図。
Dockerfileから作成する事で、コンテナの中身が把握しやすくなる。
Dockerfileを作成し下記のコマンドでimageを作成する。
$ docker build -t <name> <directory>
##Dockerfileの書き方
Dockerfileは基本的に、3つのinstructionから構成されている
・FROM
・RUN
・CMD
まずはFROMから書き始める。
FROM ubuntu:latest
RUN touch test
CMD ["ls"]
この例で例えると、ubuntu
というOSイメージをFROMで作成を行い、Linuxのtouch
コマンドを使えるようにする。
大体FROM
にはOSを指定したり、他の人が作成したDocker imageを指定する事が多い。
RUN
で指定した作業がLayerとして積み重なっていく。
但し、RUNを多用するとLayerが増えていき、Dockerimageが重たくなるので注意が必要。
CMD
はDockerfileの最後に記述する。
CMDで指定したコマンドが、containerを作成するときに実行される。
ここではls
コマンドが実行される。
##RUNとCMDの違いについて
端的にまとめると、RUN
はLayerを作る。
CMD
はLayerを作らない。
つまりCMDは、Dockerimageには反映されない。
Dockerimageに保存したい場合はRUNで記述し、実行したい内容はCMDに記述するイメージになります。
##Layer数を軽量化するために...
Layerを作成するコマンドは三つある。
・RUN
・COPY
・ADD
実際の業務においてはRUNを主に使用し、パッケージを管理する事がメインになります。
パッケージを管理するコマンドが下記になります。
RUN apt-get update -新しいパッケージリストを取得
RUN apt-get install <package> -<package>をインストール
これを&&
で繋げる事によって、一行でまとまりLayerが軽量化される。
RUN apt-get update && apt-get install test
今回は以上です。