ベースのコンテナイメージはどうやって作成されているか?

コンテナイメージを作成する方法といえば Dockerfile。 いつも FROM に何かしらのディストリビューションを指定してるけど、 FROM ubuntu RUN ... そもそも FROM に指定してるベースイメージはどうやって作成されてるのか?を調べた。 CentOS scratch イメー…

壊して理解する Docker のポータビリティ

Docker のポータビリティにはいくつか注意点がある。 コラム - クラウド時代のオープンソース実践活用 | 第43回 「Dockerイメージ」のポータビリティとLinuxカーネルのABI|CTC教育サービス 研修/トレーニング コンテナってなんだろう― 「コンテナ」の概要を…

Docker Hub のダウンロード数について

Docker Hub のダウンロード数はいつカウントアップされるのかを調査した。 オフィシャルな記載が見当たらなかったので、Download rate limit の記載を参考にしつつ、動作確認した(2021/6/9 時点)。 A pull request is defined as up to two GET requests on …

Docker コンテナのレイヤー構造について

Docker コンテナのレイヤー構造をざっくりと理解する。その過程で Docker のイメージ構造(Image Manifest V 2, Schema 2)もながめる。 概要 About storage drivers によると、Docker は、ユニオンファイルシステムを利用し、複数のレイヤーを重ね合わせるこ…

Docker COPY/RUN/CMD は 1レイヤー増えるけど、FROM は指定したコンテナイメージ分だけレイヤー増える

Best practices for writing Dockerfiles によると、 FROM/COPY/RUN/CMD の 4 種類の操作ごとにレイヤーが作成されるらしい。 COPY/RUN/CMD は 1 レイヤ増えるだけなのは分かるが、FROM 部分は 1 レイヤだけ増えるんだろうか。それとも親のコンテナイメージ…

docker ビルド時のレイヤー上限は 125

docker ビルド時のレイヤー上限は 125 (暫定) という話。終わり。 動作確認 OS は Ubuntu 、docker は 20.10.2 を利用する。 # docker --version Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2 以下のようなファイルを用意してイメージをビルドす…

kubernetes CRI とは

k8s

概要 CRI(Container Runtime Interface) は、kubelet(kubernetes のコンポーネント) がコンテナランタイムを操作するためのインタフェース。 コンテナランタイムは kubelet からの命令を受けて、イメージを取得したりコンテナを実行するもの。メジャーなコン…

containerd のイメージ取得はどのように動作するか?

次のコマンドがどのように動作するかを調査する。 # crictl pull alpine Image is up to date for sha256:6dbb9cc54074106d46d4ccb330f2a40a682d49dda5f4844962b7dce9fe44aaec # crictl images IMAGE TAG IMAGE ID SIZE docker.io/library/alpine latest 6db…

containerd をデバッグする手順のメモ

containerd はコンテナランタイムのひとつ。CRI に準拠しており、Kubernetes のコンテナランタイムとして利用できる。 仕事で containerd の調査ができそうな気配があるので(あるかな?)、containerd を動作確認しつつ調査できるようにデバッグ環境を整える。…

よくわかる man の読み方

man の man を読んでください。以上。