This document contains a summary of a presentation given by Patrick Chanezon of Docker Inc. about Docker and the container ecosystem. The presentation covered Docker's history and growth, key products like Docker Engine, Docker Hub, Docker Compose and Docker Machine. It discussed how Docker enables developers and operations teams through containerization. The presentation also looked at related projects and companies in the container space, as well as Docker's open governance model and efforts to contribute container plumbing projects to open standards.
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Docker Platform and Ecosystem
1. Patrick Chanezon, Docker Inc.
@chanezon
The Docker Platform
With slides from @jpetazzo @timpark @vieux
@tnachen @volkerw IBM @borja_burgos
and Ecosystem
Ride the Whale!
20. Internet
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
Must program!!!!
21. Internet
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Androi
d
iOS AWS
Raspberry
pi
Cloudfoundr
y
Openstac
k
Microsof
t Web
Herok
u
...
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
Programmers
22. Internet (hardware layer)
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
Internet (software layer)
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
23. Internet (hardware layer)
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
a software layer to program the internet
52. docker-compose: running multiple containers
Run your stack with one command: docker-compose up
Describe your stack with one file: docker-compose.yml
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis:redis
redis:
image: redis
53. What’s new in 1.3.0?
Performance and stability improvements
Lots more config option support
New feature (experimental!): Smart Recreate
Only recreate containers whose configuration has been changed
$ docker-compose up --x-smart-recreate
Will eventually be the default behaviour
56. What is new in 0.3.0?
Generic Driver
-Provision any host with SSH
Engine and Swarm Options
-Specify any swarm or engine option
Swarm Provisioning out of experimental
Custom Engine and Swarm Versions
-Specify stable/test for engine
-Specify image for Swarm
69. Docker, the community
>700 contributors
~20 core maintainers
>40,000 Dockerized projects on GitHub
>60,000 repositories on Docker Hub
>25000 meetup members,
>140 cities, >50 countries
>2,000,000 downloads of boot2docker
70. Docker Inc, the company
Headcount: ~130
Revenue:
t-shirts and stickers featuring the cool blue whale
SAAS delivered through Docker Hub
Support & Training
soon: Docker Hub Enterprise, behind the firewall
88. Docker Plugins
Developed with the community.
Mesosphere, WeaveWorks, ClusterHQ, Glider Labs,…
4 new extension points:
Networking
Service discovery
Storage volumes
Scheduling
More extension points coming soon.
89. Docker Plugins
Batteries included but removable: default implementation is a
plugin too!
Dynamically loaded: extend Docker without patching or restarting
it
Multi-tenant: different apps can use different plugins
No lock-in: if your application works in Docker, it already supports
every plugin.
99. Swarm beta integrations
Fully integrated with Machine
Partially integrated with Compose
Mesos integration has started in collaboration with
Mesosphere.
110. The Docker toolbox is built on plumbing.
Lots of it.
Linux
LXC
selinux
apparmor
aufs
lvm
zfs
btrfs
virtualbox
iptables openssl
tar
git
raft
serf
xenkvm openvz
paxos
ssh
Go
111. The Docker community created its own plumbing...
Lots of it.
50% of Docker’s source
code is plumbing.
113. Thou shall...
1. re-use and improve existing plumbing
2. make new plumbing easy to re-use and improve
3. Follow the unix principles: make small simple tools, not big
complicated ones
4. define standard interfaces for assembling larger systems
The principles of software plumbing
118. Introducing Notary
“Let’s stop using curl|sh”
Trusted collections for any content
Transport-agnostic
Reliable updates, proof of origin, resistant to untrusted
transport, survivable key compromise
Build on industry-leading standards and research
120. It’s just plumbing... but it’s
popular plumbing!
Containers are
5% of Docker’s
code
121. Introducing RunC
The universal container runtime
All of Docker’s container management plumbing and nothing else
Super lightweight
Battle-tested and production-ready
Supports all security features of Linux: selinux, apparmor, cgroups, seccomp,
namespaces, cap-drop..
Supports user namespaces
Supports live migration
Microsof is contributing Windows support
Arm support underway
Intel is contributing DPDK, Secure enclave
Defines a standard, portable runnable format
Usable from the command-line
https://runc.io
Their customer loves the apps they are building so fast for him: George sees $$ glint in his eyes!
George relishes complexity.
Nobody understands how the system works... apart from him.
QWERTY 3.0 is a disaster, 2 years late
Docker Hub is Docker’s cloud service for …
Publishing and discovering container images through the public registry
Team collaboration and automation of application workflows
However you look at it, the growth has been extraordinary.
Almost a quarter million users …
… who have created or are collaborating on 150,000 repositories …
… X% of which are publicly available …
… serving more than Y TB of Docker container images …
There are millions of consumers of these repos, and altogether they have pulled them more than 500 million times …
… using Z TB of bandwidth.
… also launched at DockerCon last June, the Docker Hub Official Repos program has grown to almost 80 Official Repos.
These curated images are actively maintained by the upstream owners or by Docker …
… and have proven to be some of the most popular repositories on Docker Hub …
Many of you are probably aware of our open source Registry v2 efforts, which shipped in April.
The Registry v2 team has been working hard with the Docker Hub team to transition the Docker Hub Registry to Registry v2.
New CDN optimization
The results have been simply outstanding.
First … the new Docker Hub is FASTER.
This is a result of the v2 protocol being dramatically more efficient than v1, requiring 80% fewer requests and 60% less bandwidth to accomplish the same pull.
FEWER REQUESTS
parallel pulls of multiple layers
fewer requests, and the requests that are being done are done in parallel
LESS BANDWIDTH
less bandwidth required due to better caching (better cacheability) and sharing across images
Third … thanks to completely re-built backend and frontend stacks, Docker Hub has a much more responsive user experience.
The user’s Dashboard is …
The search results is …
Second … the new Docker Hub is more reliable than previously.
This is the result of improved reliability of the Registry v2 protocol.
Specifically, Docker Hub Registry v2 has an authentication stack independent of other Hub services.
This gives push / pull operations improved availability.
User benefit: less interruptions of pulls
… and Docker uses Docker Hub
Why more reliable?
Fewer requests
Web transaction is a simpler protocol and thus less error-prone
… with features critical for on-premise deployments
If you’re an OSS registry user … EASY install, update, rollback
… and to make all this easy to configure and manage, Docker Trusted Registry also features a web-based admin GUI
… for insights into the state of the DTR host …