naoki86star

インターネットの片隅でなにかしら書いてみる

docker image hosting in nexus repository

dockerイメージのプライベートホスティングするため、nexus repository使ってみている。mavenリポジトリとかrawイメージを合わせておいておけるその組み合わせが今の自分にはいい。

今困っていることは、特にdockerイメージのストレージが肥大しやすい、というかノーアクションだと肥大を続けること。ストレージにはローカルファイルシステムを使っている。

  • ガベコレというのかデフラグというのか、adminメニューのtaskのCompact blob storeが必須だという。これは自動で呼び出す設定が可能なのでそうすればいい。Keeping Disk Usage Low
  • docker イメージはだいたいlatestで、上書きpushを繰り返している。そのとき、未参照となるdockerイメージのblobが明示的にはnexusでは判別できてないらしい。結果、Compact blob storeでは削除されずにいる。
  • adminの画面で、docker-hostedのディレクトリから消去してしまうと、そのときもdockerイメージblobは内部的に削除されないらしい。
  • 結局、都度、tags, manifests, blobsの要素を消去する必要がある。adminの画面からやるか、docker apiでDELETEするか、のどちらかが必要。

adminの画面から選択・消去を繰り返すのは苦痛であるが、スクリプト書いてapiで消去するにしても、そもそもdockerイメージのblobの不要判断というのは、どうやってするのであろうか、がわかっていない。

どうせ自分の開発用途なので、一定量ゴミがたまったら、まるっとリポジトリと(nexusの)blob storeを消す、でやってみようと思う。

もしs3とかをストレージに割り当てるときに、必要以上の容量を消費するのは、、いやだなぁ。