2026年8月1日
2026年8月1日
Dockerfileを最適化してイメージサイズを小さくする方法
はじめに
Dockerイメージのサイズは、クラウド上のリソース利用やネットワーク帯域の節約など、重要な課題となります。特に大規模なサービスや開発チームでは、最小限のボリュームで効率的に動作する必要があるため、最適化手法を理解しておくことが重要です。
症状・背景
Dockerイメージサイズが大きすぎる場合:
- クラウドコストが高額になる
- バージョンアップや新しいイメージ作成の手間が増えてしまう
- リソース効率が低下する
手順・設定方法
ステップ1: 必要なパッケージのみインストール
# 必要なパッケージだけインストール
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
package1 \
package2 \
&& rm -rf /var/lib/apt/lists/*
# パッケージ一覧を削除する
ステップ2: 未使用のライブラリやファイルを削除
# イメージ作成中に生成された無駄なファイルを削除
RUN rm -rf /var/log/* \
&& rm -rf /tmp/*
# ログファイルなどを削除
ステップ3: 不要な設定ファイルを非表示化
# .gitignoreなどの不要な設定ファイルを非表示化
COPY --chown=root:root ./.dockerignore /root/
# Dockerfile内に.gitignoreの指定を追加
.Dockerignore:
- .git/
- .svn/
ステップ4: 重要なログやトラブルシューティング用のファイルを残す
# 必要なログファイルのみを保持する
RUN find /var/log -type f ! -name 'important.log' -exec rm -f {} \;
# ログファイルを重要なものだけ残す
注意事項
- 重要なファイルや設定は削除しないように注意
- 不要なパッケージは早期にインストール解除する
- バージョン管理システムのファイルは常に除外する
- セキュリティ上の配慮から、無駄なログも削除する
まとめ
1. 必要なパッケージのみインストール: 必要ないパッケージを削除することでイメージサイズを小さくします。
2. 未使用のファイルを削除: イメージ作成時に不要なファイルが生成されないようにします。
3. 不要な設定ファイルを非表示化: 余分な設定ファイルを非表示化して、不要な情報を削除します。
4. 重要なログやトラブルシューティング用のファイルを残す: イメージサイズを小さくしつつ、必要な情報は保持します。
関連記事: