LoginSignup
1
0

More than 5 years have passed since last update.

とにかくDockerイメージのサイズを小さくしたい

Posted at

 docker build でイメージを作成したら、予想を超えびっくりする程大きくなってしまいました。
 運用に耐えられない程大きいのですが、この後コンテナを使ったテストなどが控えており、イメージのダイエットは平行して研究することとして、とりあえず出来るだけサイズダウンをして展開する必要に迫られたので、その際にとった方法を残しておきます。

イメージのサイズダウン

 イメージのサイズダウンを行うために、意識しないといけない事はたくさんあるようですが、概ね下記3つくらいを意識しておけばそこそこ効果が出そうです。

  • 複数のRUNコマンドを1行にまとめるなど、Dockerfileを頑張る。
  • マルチステージビルドでビルド時しか使わない資材をイメージに持ち込まない。
  • イメージのレイヤを統合して、肥大化したところをダイエットする。

この中で、Dockerfileを変更せずとも行える「イメージのレイヤを統合」することにしました。

イメージのレイヤを統合する

 イメージのレイヤを統合したい場合は、docker build--squashオプションをつけることで行われます。
ただし、これを行うとレイヤ構造であることのメリットが失われるので、コンテナの用途などを考えて採用するかを検討するのが良いと思います。
 このオプションは、実験的に実装されたオプションらしく、使用するにはDockerデーモン起動時のパラメータでスイッチしないと使えません。

1. Dockerデーモンを--experimentalオプション付きで起動する

という事で、スイッチの方法です。
/lib/system/docker.serviceExecStart の末尾に-s overlay --experimentalを付与して、Dockerデーモンを起動すればOKです。

2. docker build--squashオプション付きで実施する

あとは、ビルド時のオプションを指定すればOKです。

docker build --squash=true

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0