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
Kazuki Ishikawa
September 05, 2025
Programming
0
16
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
440
NGレシート検知モデルの作成
kuroneko2828
0
38
Other Decks in Programming
See All in Programming
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.5k
Implementation Patterns
denyspoltorak
0
140
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
130
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
320
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
290
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.4k
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
1
200
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
230
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
150
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
340
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
We Have a Design System, Now What?
morganepeng
54
8k
Building AI with AI
inesmontani
PRO
1
600
Balancing Empowerment & Direction
lara
5
830
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
34
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
How STYLIGHT went responsive
nonsquared
100
6k
Google's AI Overviews - The New Search
badams
0
880
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
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