後輩「今日気づいたこと:ゴールから逆算して予定を立てようと思った(まる)」
ぼく「え、やったことないの?そういう考え方 」
後輩「ありますけど…」
ぼく「あるなら気付いたっていうか、知ってたっていうか、やってたっていうことでは?何に気付いたん?これ」
後輩「(よくわからない経緯)」
ぼく「(真顔)」
どっかーんを最初に起動させてsecretを生成しようとしているので、このタイミングでRW領域への書き込みがあって…初回起動なのでRO部分への変更もぼちぼちあったりして、そうなるとCoWが発動して、全然考慮してないからおっそいoverlay2が使われてましまろになっている?
aufsが利用可能ならデフォでそれを使う。btrfsやzfsなんかであればファイルシステムの仕組みに任せちゃう?どっちもダメならoverlay2かdevicemapperを考えるけど…後者はdirect-lvmが必要で…ううん…?
CoWは…効率よくやったろうじゃんというテクの一つで…でっかいデータを複製するとき、バカ真面目にコピーしないでいったんコピしたフリをしておいて、ガチで書き換え要求が来たらそのタイミングで空き容量を確保してコピーする…と
コンテナはなるべく容量が増えないように書き込み可能領域に変更だけをかいていくけど、ROなコンテナ本体構築につかった領域に変更があるとCoWな動きをして…その挙動はストレージドライバによって異なる…
docker ps -sしたときのSizeは書き込み可能領域のサイズで、Virtualのカッコ内にあるのはROな感じでコンテナ構築に使われている部分…と
どっかーんのイメージはレイヤーの重なりであり…各層はどっかーんファイルにかかれている内容でもあり…ROな感じでコンテナ構築がなされて、コンテナになったあとの変更はRWな操作がされて…コンテナ潰すときはどっちも消える…うむ…