どうも!めがとんです!
今回はDockerfileの書き方について紹介しようと思います。
興味がある方は最後まで読んでいただけると幸いです。
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
今回は以上です。