docker/kubernetes で sysctl を設定する

この記事は docker Advent Calendar 2021 の 16 日目です。 コンテナで特定のカーネルパラメータを変更する方法を調査する。 調査したバージョン Ubuntu 20.04.02 LTS に docker.io 20.10.7-0ubuntu5~20.04.2 をインストールして検証する。 # uname -a Linux…

delay accounting を使ってみる

この記事は Linux Advent Calendar 2021の8日目の記事です。 delay accouting は、プロセスやスレッドグループが、どれだけカーネルに待たされたかを測定できる仕組み。 たとえばプロセスの動作が遅い原因がカーネルにあるのか・あるとしたらどの処理か?の…

コンテナからホストの情報見える問題

コンテナ内でコマンドを実行したときに、コンテナのリソースと思いきやホストのリソースを見ていることがある。 たとえば free コマンドはコンテナでもホストでも同じ実行結果になる。(EC2 の Ubuntu20.04LTS に docker.io 入れて検証) host $ free -h total…

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

コンテナイメージを作成する方法といえば 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 からの命令を受けて、イメージを取得したりコンテナを実行するもの。メジャーなコン…