Learn or Die

生涯勉強。Macです。

Dockerfileの主要なinstruction「FROM」「RUN」「CMD」

FROM

  • ベースとなるイメージを決定する。
  • DockerfileはFROMから書き始める。

RUN

  • LInuxコマンドを実行する
  • FROMの次の行にパッケージをインストールするRUNを書くのが一般的(長くなる場合は \ を使って改行する)
  • RUN毎にLayerが作られる

Dockerfileを作っている最中はキャッシュを使うようにする。(buildの時間短縮の為)
キャッシュを使うにはRUNを細かく分ける。
最後に完成するときは全て「 \ 」などで繋げればOK。(image layerを少なくする為)

Docker imageのLayer数は最小限にすることがベストプラクティス

  • &&でコマンドをつなげる

CMD

  • コンテナのデフォルトのコマンドを指定
  • 原則Dockerfileの最後に記述
  • CMD["executable(コマンド)", "param1", "param2"]

完成形(例)

FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
    curl \
    cvs \
    nginx
CMD [ "/bin/bash" ]