DockerfileからDockerimageへのコマンドやINSTRUCTIONについて


はじめに

本記事では、DockerfileからDockerimageへのコマンド達をまとめました。
本日学習した範囲内で、アウトプットします。

先日もコマンドについて投稿しているのでこちらも参照ください。

Dockerfile

DockerHubから例えばubuntuを検索すると、
当然ubuntuが最初に出てくるはずです。
ubuntu
ここから、
Supported tags and respective Dockerfile links
というところの一番上のリンクに入ると、Githubに行けます。

ここには、DockerfileからDockerimageを作るためのコマンドは乗っています。

FROM scratch
ADD ubuntu-bionic-oci-amd64-root.tar.gz /
CMD ["bash"]

FROMとかADDとかは、INSTRUCTION
それら以降に記述するものは、argumentです。

docker build .

dockerがDockerfileを探してDockerimageを作ってくれます。
配下のDockerfileでimageを作ることが多いので、
基本的に.を最後におきます。

また、imageを作っただけなので、
今のところでは、ダングリングのimageになっています。<none>です。

docker images -f dangling=true

ダングリングのimageだけを表示する。

docker build -t つけたい名前 親のディレクトリー

docker images -f dangling=trueで、
表示したimageに名前をつけられる。

例
% docker build -t new-ubuntu:latest .

% docker images
REPOSITORY               TAG       IMAGE ID       CREATED         SIZE
new-ubuntu               latest    ~~~~~~~~~~~~   1 minutes ago   65.6MB

DockerfileのINSTRUCTIONについて

FROM

ベースになるimageを決定する。
ubuntuとかalpineとか。
あまりデータ容量が大きいものを使うと後々容量過多で重くなるので注意。

RUN

これを使うと好きなようにカスタマイズできる。
RUN touch testtestファイルを作る

また、RUNするごとに、layerができる。
RUNを連発してしまうと、layerだらけになり容量過多になるので注意。

  • コマンドを&&でつなげる
  • バックスラッシュを使って改行する

という対策をとる。

CMD

コマンドの略。
コンテナにてLinuxのデフォルトのコマンドを指定できる。

CMD ["コマンド","(あれば)コマンドの引数1","(あれば)コマンドの引数2"]
bashを起動する場合が多いと思うので、
CMD ["bin/bash"]が多いと思います。

原則Dockerfileの最後に記述。

以上です。

終わりに

Dockerfileの基礎を学習していました。
理解できると楽しいですね〜。

私の学習している動画はこちらです。(有料)
最高に分かりやすいのでオススメです。
米国AI開発者がゼロから教えるDocker講座

明日もDocker学習頑張ります!