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
How To Put Your Docker Image On A Diet
Search
Peter Fisher
September 26, 2019
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How To Put Your Docker Image On A Diet
Talk given at PHP South Wales
Peter Fisher
September 26, 2019
More Decks by Peter Fisher
See All by Peter Fisher
Software Complexities
pfwd
0
290
Using a framework or not?
pfwd
1
370
How To Put Your Docker Image On A Diet | PHP South West
pfwd
1
270
Other Decks in Technology
See All in Technology
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
320
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
390
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
160
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
570
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
630
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
240
toB プロダクトから見たWAF
tokai235
0
260
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
190
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
340
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
630
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
180
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.3k
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
Design in an AI World
tapps
1
250
How to build a perfect <img>
jonoalderson
1
5.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
620
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
420
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
550
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
330
Transcript
PUT YOUR DOCKER IMAGE ON A DIET @PFWD @HowToCodeWell
SELF TAUGHT DOCKER DEV IF YOU SEE AN IMPROVEMENT PLEASE
LET ME KNOW WE ARE ALL LEARNING ALL THE TIME @PFWD @HowToCodeWell
PHP 7.4 RC 1 SYMFONY 4.3.6 APACHE 2 WEB SERVER
ORIGINAL 1.09GB AFTER DIET 171 MB @PFWD @HowToCodeWell
@PFWD @HowToCodeWell
WHY | WHAT | HOW @PFWD @HowToCodeWell
PETER FISHER BSC MBSC HOW TO CODE WELL
@PFWD @HowToCodeWell
WHY | WHAT | HOW @PFWD @HowToCodeWell
SPEED | SECURITY | SANITY | SCALABILITY @PFWD @HowToCodeWell
SPEED THE LIGHTER THE IMAGE THE FASTER THE DEVELOPMENT @PFWD
@HowToCodeWell
SPEED THE LIGHTER THE IMAGE THE FASTER THE DEPLOYMENT @PFWD
@HowToCodeWell
SPEED THE LIGHTER THE IMAGE THE FASTER THE DISTRIBUTION @PFWD
@HowToCodeWell
SECURITY THE SMALLER THE IMAGE THE SMALLER THE ATTACK SURFACE
@PFWD @HowToCodeWell
SECURITY DO NOT BAKE SECURITY CREDS INTO YOUR IMAGES @PFWD
@HowToCodeWell
SANITY THE SMALLER THE IMAGE THE LESS YOU HAVE TO
MAINTAIN @PFWD @HowToCodeWell
SANITY THE SMALLER THE IMAGE THE MORE CONTROL YOU HAVE
@PFWD @HowToCodeWell
SANITY THE SMALLER THE IMAGE THE QUICKER YOU CAN SPOT
PROBLEMS @PFWD @HowToCodeWell
SANITY THE SMALLER THE IMAGE THE LESS RESPONSIBILITY IT HAS
@PFWD @HowToCodeWell
SCALEABILITY THE SMALLER THE IMAGE THE QUICKER IT CAN INSTALL
@PFWD @HowToCodeWell
SCALEABILITY THE SMALLER THE IMAGE THE QUICKER TO EXPAND @PFWD
@HowToCodeWell
SCALEABILITY THE SMALLER THE IMAGE THE QUICKER TO CONTRACT @PFWD
@HowToCodeWell
SCALEABILITY THE SMALLER THE IMAGE THE QUICKER TO REUSE @PFWD
@HowToCodeWell
WHY | WHAT | HOW @PFWD @HowToCodeWell
WHAT IS THE DIFFERENCE BETWEEN A DOCKER CONTAINER AND A
VIRTUAL MACHINE? @PFWD @HowToCodeWell
@PFWD @HowToCodeWell
VIRTUALIZATION != CONTAINERIZATION @PFWD @HowToCodeWell
VIRTUALIZATION = IS A HOUSE @PFWD @HowToCodeWell
CONTAINERIZATION = IS A ROOM @PFWD @HowToCodeWell
DIFFERENT LEVELS OF ABSTRACTION @PFWD @HowToCodeWell
BOTH SOLVE DIFFERENT PROBLEMS @PFWD @HowToCodeWell
BOTH SHOULD BE USED DIFFERENTLY @PFWD @HowToCodeWell
VIRTUALIZATION CUSTOM ENVIRONMENT ALLOCATED RESOURCES ECOSYSTEM @PFWD @HowToCodeWell
CONTAINIZATION SINGLE PROCESS SINGLE RESPONSIBILITY SINGLE PURPOSE @PFWD @HowToCodeWell
WHAT IS A DOCKER IMAGE ANYWAY? @PFWD @HowToCodeWell
WHAT IS A DOCKER IMAGE ANYWAY? ANSWER: A FILE MADE
FROM MANY LAYERS WHICH CREATES A CONTAINER @PFWD @HowToCodeWell
CONTAINERS ARE BUILT FROM IMAGES @PFWD @HowToCodeWell
WHAT IS A DOCKER IMAGE MADE FROM? @PFWD @HowToCodeWell
WHAT IS A DOCKER IMAGE ANYWAY? ANSWER: MANY DIFFERENT IMAGES
@PFWD @HowToCodeWell
WHAT IS A DOCKER FILE? @PFWD @HowToCodeWell
WHAT IS A DOCKER FILE? ANSWER: A SERIES OF INSTRUCTIONS
THAT BUILD A DOCKER IMAGE @PFWD @HowToCodeWell
WHY | WHAT | HOW @PFWD @HowToCodeWell
VERSION 1.0.0 1.09 GB @PFWD @HowToCodeWell
VERSION 1.0.0 1.09 GB @PFWD @HowToCodeWell
26 BUILD STEPS 18 RUN INSTRUCTIONS VERSION 1.0.0 1.09 GB
@PFWD @HowToCodeWell
10 BUILD STEPS VERSION 1.1.0 1.06 GB @PFWD @HowToCodeWell
MULTIPLE CONTAINER RESPONSIBILITIES VERSION 1.1.0 1.06 GB @PFWD @HowToCodeWell
REMOVED MULTIPLE CONTAINER REPSONSIBILTES MYSQL-SERVER MYSQL-CLIENT RABBITMQ-SERVER VERSION 1.2.0 708MB
@PFWD @HowToCodeWell
DO NOT VERSION 1.2.0 708MB @PFWD @HowToCodeWell
REMOVED PHP-7.4-* VERSION 1.3.0 449MB @PFWD @HowToCodeWell
WRONG BASE IMAGE VERSION 1.3.0 449MB @PFWD @HowToCodeWell
VERSION 1.4.0 601MB USE PHP APACHE BASE IMAGE @PFWD @HowToCodeWell
VERSION 1.5.0 485MB @PFWD @HowToCodeWell
VERSION 1.6.0 478MB DON’T INSTALL RECOMENDED PACKAGES —no-install-recommends @PFWD @HowToCodeWell
VERSION 1.7.0 444MB MULTI STAGE DOCKER BUILD 3 STAGES! @PFWD
@HowToCodeWell
DEV PACKAGES SHOULD BE FOR DEV NOT FOR PROD! @PFWD
@HowToCodeWell
VERSION 1.8.0 424MB MULTI STAGE DOCKER BUILD 5 STAGES! 2
TARGETS NO DEV PACKAGES IN STAGING STAGING HAS AUTOLOADER DUMPED @PFWD @HowToCodeWell
VERSION 1.9.0 171MB ALPINE IMAGES DECOUPLING PHP FROM APACHE @PFWD
@HowToCodeWell
VERSION 1.9.0 88.5MB USE PHP FPM PHP AND APACHE ARE
IN 2 CONTAINERS @PFWD @HowToCodeWell
VERSION 1.9.0 PHP 88.5MB APACHE 171MB ER… HOW? @PFWD @HowToCodeWell
VERSION 1.9.0 PHP 88.5MB APACHE 171MB PROXY PHP REQUESTS TO
THE PHP CONTAINER @PFWD @HowToCodeWell
VERSION 1.9.0 PHP 88.5MB APACHE 171MB 1) USE THE PHP
SERVICE NAME 2) NETWORK APACHE AND PHP 3) SHARE THE SITE VOLUME @PFWD @HowToCodeWell
VERSION 1.9.0 PHP 88.5MB APACHE 171MB 1) USE THE PHP
SERVICE NAME 2) NETWORK APACHE AND PHP 3) SHARE THE SITE VOLUME @PFWD @HowToCodeWell
Version Size 1.0.0 1.0.9 GB 1.1.0 1.0.6 GB Reduced build
steps 1.2.0 708 MB Removed other responsibilities 1.3.0 449 MB Removed unknown PHP packages (php7.4-*) 1.4.0 601 MB Changed the base image 1.5.0 485 MB Removed package and composer cache 1.6.0 478 MB Didn’t install recommend packages 1.7.0 444 MB Used Multi Stage Docker Images 1.8.0 424 MB Removed dev composer packages 1.9.0 171 MB - Apache 88 MB - PHP Separated Apache and PHP @PFWD @HowToCodeWell
Peter Fisher BSC MBSC GITHUB https://github.com/pfwd/how-to-put- your-docker-image-on-a-diet Version 1.0.0 $
docker-compose up -d --build Grab a ☕ @PFWD @HowToCodeWell
Peter Fisher BSC MBSC THANK YOU QUESTIONS? LET ME KNOW
WHAT YOU THINK! @PFWD @HowToCodeWell