はじめに
Dockerfile を作成する際に
FROM, RUN, CMD を利用することがあります。
それぞれがどんな役割を担っているのか復習も含め整理していきます。
対象者
- IT 初学者
- Docker 初学者
- インフラ系に興味がある方
得られるもの
- FROM についての概要が把握できる
- RUN についての概要が把握できる
- CMD についての概要が把握できる
使用したDockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
curl \
cvs \
nginx
CMD ["ls"]
FROM
- 作成する Docker 環境のベースとなる image (OS)を指定
- 基本は必要最低限の機能を備えた image を指定
- Dockerfile はFROM から書き始める
RUN
- Linuxコマンドを実行。RUN を使うことで好きなように環境をカスタマイズできる。
- RUN <やりたいこと> で記述
RUN apt-get update
RUN apt-get install <package>
- RUN毎にimage layer が作られる
- Docker image のベストプラクティスは Layer数を最小限にする ※ RUNの数に注意
RUN を使い方
- Dockerfile を作成 or メンテナンスする時は RUN を分けて記述する
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install curl -y
RUN apt-get install cvs -y
RUN apt-get install nginx -y
- Dockerfile を完成させる際に && や \ でRUNの行を減らす。
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
curl \
cvs \
nginx
CMD
- コンテナ起動時のデフォルトコマンドを指定
- CMD[”executable(ls, pwd など)”, “param1”, “param2”] で記述
CMD ["/bin/bash"]
- 原則Dockerfileのさいごに記述
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
curl \
cvs \
nginx
CMD ["ls"]
- 一般的には /bin/bash が多いらしい
- CMD は Layer を作らない
さいごに
簡単なdockerfile を作り記事にすることで自身の理解を再確認できました。
次は ADD, COPY などを追加して知識の幅を広げられたと思います。
私自身は Docker 初学者ですが、コツコツを成長出来たらを思います。