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
19
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
39
Other Decks in Programming
See All in Programming
AI & Enginnering
codelynx
0
120
組織で育むオブザーバビリティ
ryota_hnk
0
180
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
今から始めるClaude Code超入門
448jp
8
8.9k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
Package Management Learnings from Homebrew
mikemcquaid
0
230
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
140
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Design in an AI World
tapps
0
140
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
62
HDC tutorial
michielstock
1
390
Done Done
chrislema
186
16k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
Automating Front-end Workflow
addyosmani
1371
200k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Faster Mobile Websites
deanohume
310
31k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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