0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【基本編】Dockerfileの書き方 自己学習②

Last updated at Posted at 2020-11-17

##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

今回は以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?