dockerファイルとは
Docker イメージというコンテナの土台となるファイルのこと.
dockerファイルの基本的なコマンド
-
FROM
OSを指定する.
FROM ubuntu:latest
-
RUN
使用するパッケージの指定とパッケージ保守プログラムを記載.
RUN apt-get update && apt-get install -y ruby ruby-dev RUN gem install sinatra
-
CMD
Dockerを起動した時に走らせるプログラム
CMD ["/bin/bash"]
-
COPY
COPY something /new_dir/
実際に作成してみる
ディレクトリ作成
mkdir docker
dockerファイル作成
touch Dockerfile
# 今回の実習でCOPYするファイル
touch something
dockerファイルにプログラムを書き込む
# OSを指定する
FROM ubuntu:latest
# パッケージをインストール 「\」は改行しても1行とみなされる.
# 「&&」は複数のコマンドを同時実行 1行でまとめることでレイヤーを少なくする.
RUN apt-get update && apt-get install -y \
bzr \
cvs \
git \
RUN mkdir app
COPY something /app/
# run後に走らせるプログラム shellを起動させている
CMD ["/bin/bash"]
buildしてイメージを作成
# .はカレントディレクトリを指定している.
docker build .
# 作成できているか確認
docker images
runしてパッケージがインストールされているか && somethingファイルが存在するか確認
docker run -it <image id>
# docker内でパッケージとファイルを確認 パッケージはbin/〜
ls
キャッシュをうまく使う
下記のように1行で記述すると、レイヤーの数を削減できるがパッケージの追加や編集の際にいちからbuildしてるとインストールに時間がかかってしまう。
RUN apt-get update && apt-get install -y \
bzr \
cvs \
git \
ファイル編集時や構築時にはすべて1行づつ記述する.
キャッシュにより前回インストールしたものはインストールせずに進むため時間短縮になる。
すべてのプログラムが動くことを確認してから1行でまとめるのがベストプラクティス
RUN apt-get update
RUN apt-get install -y bzr
RUN apt-get install -y cvs
RUN apt-get install -y git
exit code :100
一度buildした後、再度ファイルを編集してbuildすると、エラーが起こる.
理由は不明だが、updateを記述しない状態でbuildするとエラーが発生する.
updateを記述することで解決する.
RUN apt-get update
RUN apt-get install -y bzr
RUN apt-get install -y cvs
RUN apt-get install -y git
Top comments (0)