Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker imageを軽くしたい!!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuki Ishikawa
September 05, 2025
Programming
0
20
Docker imageを軽くしたい!!
Docker imageを軽くする手法について、実際のimageサイズを出しながら紹介しています。
紹介する手法
- ベースイメージの検討
- 使用ライブラリの軽量化
- マルチステージビルドの活用
Kazuki Ishikawa
September 05, 2025
Tweet
Share
More Decks by Kazuki Ishikawa
See All by Kazuki Ishikawa
機械学習って何? 5分で解説頑張ってみる
kuroneko2828
1
460
NGレシート検知モデルの作成
kuroneko2828
0
40
Other Decks in Programming
See All in Programming
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
220
CSC307 Lecture 07
javiergs
PRO
1
560
Oxlint JS plugins
kazupon
1
1k
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
PRO
0
140
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
200
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
170
Package Management Learnings from Homebrew
mikemcquaid
0
240
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
300
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
490
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
480
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
660
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
190
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
120
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The SEO identity crisis: Don't let AI make you average
varn
0
370
A Soul's Torment
seathinner
5
2.3k
Agile that works and the tools we love
rasmusluckow
331
21k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
260
The Pragmatic Product Professional
lauravandoore
37
7.1k
Thoughts on Productivity
jonyablonski
74
5k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Transcript
Docker imageを軽くしたい!! @ishi2ki
自己紹介 石川 和樹 機械学習エンジニア (?) インフラ、iOS、フロント/サーバーサイド...色々触ってます 経歴 - 〜2024年
名古屋大学大学院 修了 - 2024年〜 WED株式会社 入社 趣味 謎解き (やるのも作るのも) 2 @ishi2ki 推し→
業務内容 3 OCR DB
業務内容 4 OCR DB NG判定 OCR 領域検知 カテゴリ推 論 商品マスタ
との紐づけ
本編 5
課題 6 Docker imageが大きい 機械学習を使うサービスだと数十GBになることも… 悪影響 - 保存領域の圧迫 -
CI/CDの長時間化 - クラウドへの転送量が増加 - pod立ち上げの長時間化
解決策 1. ベースイメージをなるべく小さいものにする 2. 使用ライブラリを最低限にする 3. マルチステージビルドを活用する 7
ベースイメージの選定 なるべく小さいものを選ぶ 足りないものはapt-getとかで入れればOK! 8 Python - python:3.13.7 → 400.53MB
- python:3.13.7-slim → 42.37MB Go - golang:1.24.7 → 309.73MB - golang:1.24.7-alpine → 77.07MB
使用ライブラリの最小化 9 ・使わないライブラリは入れない ・使うライブラリでもなるべく小さく抑える 例:PyTorch (Pythonライブラリ) を使ったサービスのイメージ GPU ver.
pip install torch → 7.07GB CPU ver. pip install torch --index-url https://download.pytorch.org/whl/cpu → 1.09GB
マルチステージビルド (1/3) Docker imageの作成を何段階かに分けて行う手法 1. ビルド用ステージ a. ビルドに必要なものをインストール b.
実行に必要なものを作成する 2. 実行用ステージ a. 1から実行に必要なものをコピー b. その他必要最低限のものをインストール 10
マルチステージビルド (2/3) 領域検知 11 ビルド用 ステージ 実行用 ステージ シングルステージビルド
1.18GB マルチステージビルド 0.98GB
マルチステージビルド (3/3) Goなどコンパイル型言語は効果大 (実行バイナリだけコピー) 12 ビルド用 ステージ 実行用 ステージ シングルステージビルド
913MB マルチステージビルド 68.9MB
削減効果まとめ NG判定サービス (with 軽量機械学習モデル) 8.06GB ↓ base image を python:3.13 →
python:3.13-slim 7.07GB ↓ PyTorchをCPU onlyに変更 1.18GB ↓ マルチステージビルド 0.98GB 13
まとめ docker image のサイズ削減は大事! - ベースイメージを小さくする - 必要なものは追加でインストールすればいい - ライブラリを最小化
- サイズの大きいライブラリは、小さくできないか検討 - Pythonの機械学習ライブラリで効果絶大 - マルチステージビルド - 実行に必要なものだけイメージに残す - Goなどコンパイル型言語で効果絶大 14