SlideShare a Scribd company logo
interoperable
containers
Fabio Kung
fabio@heroku.com
https://www.flickr.com/photos/usnavy/8612337045
Please don't continue. Go
see this instead:
http://fabiokung.com/2014/06/11/my-dockercon-2014-talk
Fabio, Runtime Systems at
I run linux containers.
http://12factor.net
“write once, run
everywhere
– Sun Microsystems (?)
“write once, debug
everywhere
– (?)
https://www.flickr.com/photos/tjblackwell/3545764529
Developers want apps...
https://www.flickr.com/photos/cyol/7642566946
PaaS wants scale...
https://www.flickr.com/photos/johngarghan/3401814659
Docker wants...
docker logo usage follows guidelines published at http://www.docker.com/marks_and_logos/
DockerCon 2014: Thoughts on interoperable containers
PaaS
You
docker
lxc
lmctfy
...
background: https://www.flickr.com/photos/jdhancock/12397433023
Containers
https://www.flickr.com/photos/joshua/433354324
“trying to make Docker
secure for multi-tenant
scenarios is a can of worms
– darren0, at #docker-dev
1 vs 1M
https://www.flickr.com/photos/enerva/9068467267
Root
https://www.flickr.com/photos/ashleyrosex/2861690380
apt-get install …
vi /etc/…
mount -t fancy …
modprobe something
iptables -A INPUT …
kernelspace abuse
https://www.flickr.com/photos/erlendaasland/4107345124
User Namespaces
Unprivileged Containers
https://www.flickr.com/photos/ntr23/730371240
“
(…) the kernel grants all capabilities to the
initial process in a user namespace, this does
not mean that process then has superuser
privileges within the wider system. (It may,
however, mean that unprivileged users now
have access to exploits in kernel code that
was formerly accessible only to root, ...)
– Michael Kerrisk, “Namespaces in operation, part 6: more on user namespaces", LWN.net
if (getuid() == 0) {
// do root stuff
}
just don't run as root?
also SUID
Restrictions
https://www.flickr.com/photos/mollivan_jon/10431164633
Networking
https://www.flickr.com/photos/emptyage/177466621
ephemeral disks
https://www.flickr.com/photos/pixeltree/4876732522
arch, OS, image size, …
containers/container-rfc · GitHub
“A vendor neutral format for Linux
container images and runtime
https://www.flickr.com/photos/littlebiglens/6034320322
Image Size
Layers
https://www.flickr.com/photos/ralan808/11300490173
Updates?
noncommercial use
https://www.flickr.com/photos/doug88888/2801103568
Packages
“slugs”
dotcloud/docker#332
docker load --rebase=new-base-image
Apps
https://www.flickr.com/photos/zoomar/338952152
Buildpacks
app source + base image
FROM heroku/cedar
ADD . /buildpack
ONBUILD ADD . /app
ONBUILD RUN /buildpack/bin/compile /app
ONBUILD ENV PORT 5000
ONBUILD EXPOSE 5000
`ONBUILD ONBUILD`
dotcloud/docker#5714
Buildstep
https://github.com/progrium/buildstep
https://github.com/radial/
#!/usr/bin/env make -f
buildpath := .build
buildpackpath := $(buildpath)/pack
buildpackcache := $(buildpath)/cache
build: $(buildpackpath)/bin
$(buildpackpath)/bin/compile . $(buildpackcache)
$(buildpackcache):
mkdir -p $(buildpath)
mkdir -p $(buildpackcache)
curl -O https://codon-buildpacks.s3.amazonaws.com/.../go.tgz
mv go.tgz $(buildpath)
$(buildpackpath)/bin: $(buildpackcache)
mkdir -p $(buildpackpath)
tar -C $(buildpackpath) -zxf $(buildpath)/go.tgz
ruby = "https://codon-buildpacks.s3.amazonaws.com/.../ruby.tgz"
app_container "myapp" do
buildpack ruby
git_url "git@mycompany.com:myapp.git"
end
define :app_container,
name: nil,
buildpack: nil,
git_url: nil do
# ...
execute "#{name} buildpack compile" do
command "#{dir}/.build/pack/bin/compile #{dir} .build/cache"
end
end
container centric: whole image
app centric: builds as a mapping layer
recap: the container revolution
Thank you!
fabio@heroku.com
All images used in this presentation are under a Creative Commons License, unless otherwise noted
https://www.flickr.com/photos/compacflt/5948542359

More Related Content

PDF
Interoperable Containers
PDF
Equinox/p2 - Getting started with Equinox/p2
ZIP
Voiture tech talk
PDF
Hot deployments with distillery
PPT
State ofappdevelopment
PDF
Culerity and Headless Full Stack Integration Testing
PDF
Супер быстрая автоматизация тестирования на iOS
PDF
Dependent things dependency management for apple sw - slideshare
Interoperable Containers
Equinox/p2 - Getting started with Equinox/p2
Voiture tech talk
Hot deployments with distillery
State ofappdevelopment
Culerity and Headless Full Stack Integration Testing
Супер быстрая автоматизация тестирования на iOS
Dependent things dependency management for apple sw - slideshare

What's hot (6)

PDF
Memory Management in Android
PDF
T3CON12 Flow and TYPO3 deployment with surf
PDF
Hacking Selenium @ JSConf
PDF
Android Platform Debugging and Development at ABS 2014
ODP
Konvensyen Webmaster Negeri Sabah 2013
PDF
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
Memory Management in Android
T3CON12 Flow and TYPO3 deployment with surf
Hacking Selenium @ JSConf
Android Platform Debugging and Development at ABS 2014
Konvensyen Webmaster Negeri Sabah 2013
InspiringCon15: Bringing TYPO3 Legacy Applications into the Flow
Ad

Similar to DockerCon 2014: Thoughts on interoperable containers (20)

PDF
Developing for Mobile
PDF
Good - aDocker - Reference Materials.pdf
PDF
Cloud Computing - Technology Radar 2015 / Apr 27th 2015
PDF
Using docker to develop NAS applications
PDF
Web and browser evolution
PDF
WebDev References
PPTX
Lecture13 Containers
PDF
Web services and JavaScript
PPTX
What's New in Docker 19.03.0 Pre-Release?
ODP
Ensemble oscon 2011
PDF
Learning Docker with Thomas
PDF
Using Docker to build and test in your laptop and Jenkins
PDF
Docker for Deep Learning (Andrea Panizza)
PDF
Vagrant + Docker provider [+Puppet]
PDF
JS Module Server
PDF
A Continuous Packaging Pipeline
PPTX
CNCF Québec Meetup du 16 Novembre 2023
PDF
Mobile Web Speed Bumps
PDF
Introduction to Docker
PPTX
Building Rackspace Cloud Monitoring
Developing for Mobile
Good - aDocker - Reference Materials.pdf
Cloud Computing - Technology Radar 2015 / Apr 27th 2015
Using docker to develop NAS applications
Web and browser evolution
WebDev References
Lecture13 Containers
Web services and JavaScript
What's New in Docker 19.03.0 Pre-Release?
Ensemble oscon 2011
Learning Docker with Thomas
Using Docker to build and test in your laptop and Jenkins
Docker for Deep Learning (Andrea Panizza)
Vagrant + Docker provider [+Puppet]
JS Module Server
A Continuous Packaging Pipeline
CNCF Québec Meetup du 16 Novembre 2023
Mobile Web Speed Bumps
Introduction to Docker
Building Rackspace Cloud Monitoring
Ad

More from Fabio Kung (13)

PDF
Linux Containers at scale: challenges in a very dense environment
KEY
Dicas e truques para ser um bom inquilino no Cloud
KEY
Ruby and Rails Packaging to Production
KEY
Ruby 2.0: to infinity... and beyond!
KEY
Cloud IaaS - Detalhes da Infraestrutura como Serviço
KEY
Usando o Cloud
PDF
Storage para virtualização
KEY
Automacao devops
KEY
DSLs Internas e Ruby
KEY
Onde mora a produtividade do Ruby on Rails?
ZIP
Ruby, muito mais que reflexivo
ZIP
SOA não precisa ser buzzword
ZIP
JRuby on Rails
Linux Containers at scale: challenges in a very dense environment
Dicas e truques para ser um bom inquilino no Cloud
Ruby and Rails Packaging to Production
Ruby 2.0: to infinity... and beyond!
Cloud IaaS - Detalhes da Infraestrutura como Serviço
Usando o Cloud
Storage para virtualização
Automacao devops
DSLs Internas e Ruby
Onde mora a produtividade do Ruby on Rails?
Ruby, muito mais que reflexivo
SOA não precisa ser buzzword
JRuby on Rails

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation theory and applications.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Machine Learning_overview_presentation.pptx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
DOCX
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
Unlocking AI with Model Context Protocol (MCP)
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx
Network Security Unit 5.pdf for BCA BBA.
A Presentation on Artificial Intelligence
Encapsulation theory and applications.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Machine Learning_overview_presentation.pptx
Spectroscopy.pptx food analysis technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Programs and apps: productivity, graphics, security and other tools
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
NewMind AI Weekly Chronicles - August'25-Week II
Per capita expenditure prediction using model stacking based on satellite ima...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
The AUB Centre for AI in Media Proposal.docx

DockerCon 2014: Thoughts on interoperable containers