31. 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
32. 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
35. 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
65. 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.
66. 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.
67. Swarm
Scheduler pluginsScheduler plugins
Engine
Volumes pluginsVolumes plugins
Network pluginsNetwork plugins
Service discovery
plugins
Service discovery
plugins
Engine
Volumes pluginsVolumes plugins
Network pluginsNetwork plugins
Service discovery
plugins
Service discovery
plugins
mesos
flockerglusterfs
weavecalico
consuletcdzookeeper
midokuraciscoazurenuagenetworks
76. Swarm beta integrations
Fully integrated with Machine
Partially integrated with Compose
Mesos integration has started in collaboration
with Mesosphere.
87. 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
88. The Docker community created its own plumbing...
Lots of it.
50% of Docker’s
source code is
plumbing.
90. Thou shalt...
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
95. 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
98. 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
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 …