Slide 1

Slide 1 text

Docker Swarm @vieux - @docker Docker Meetup at 500 Startups

Slide 2

Slide 2 text

Running containers on multiple hosts

Slide 3

Slide 3 text

Today Docker CLI Docker CLI Docker CLI

Slide 4

Slide 4 text

Introducing Docker Swarm us-west us-east Docker CLI Docker CLI Swarm

Slide 5

Slide 5 text

Swarm in a nutshell • Docker REST API (>80%) • Resource management (CPU, Mem, Networking) • Advanced scheduling with constraints and affinities • Multiple Discovery Backends (hub, etcd, consul, zookeeper) • TLS: Encryption & Authentication Soon: Health check & Rebalancing

Slide 6

Slide 6 text

Timeline Oct Nov Dec Jan Feb Jun Proof of Concept DockerCon EU Open Repository First Release Candidate Swarm Beta Release Swarm 1.0 Global Hack Day Open Proposal

Slide 7

Slide 7 text

Setup using the hosted discovery service • Create a cluster: $ swarm create • Add nodes to a cluster: $ swarm join --add= token:// • Start Swarm $ swarm manage --addr= token:// Or you can use your own etcd, zookeeper or consul Contributions are welcome  :

Slide 8

Slide 8 text

Resource Management • Memory $ docker run -m 1g … • CPU $ docker run -c 1 … • Ports $ docker run -p 80:80 … • More to come, ex: network interfaces

Slide 9

Slide 9 text

Constraints • Standard constraints induced from docker info docker run -e “constraint:operatingsystem==*fedora*” … docker run -e “constraint:storagedriver==*aufs*” … • Custom constraints with host labels docker -d --label “region==us-east” docker run -e “constraint:region==us-east” … • Pin a container to a specific host docker run –e “constraint:node==ubuntu-2” …

Slide 10

Slide 10 text

Affinities • Containers affinities docker run --name web nginx docker run -e “affinity:container==web” logger • Containers Anti-affinities docker run --name redis-master redis docker run --name redis-slave -e “affinity:container!=redis*” … • Images affinities docker run -e “affinity:image==redis” redis

Slide 11

Slide 11 text

Swarm Scheduler 2 steps: • 1- Apply filters to exclude nodes - ports - labels - health • 2- Use a strategy to pick the best node - random - binpack - spread Contributions are welcome  :

Slide 12

Slide 12 text

Swarm Beta: Integrations • Fully integrated with Machine • Partially integrated with Compose • Mesos integration has started in collaboration with Mesosphere.

Slide 13

Slide 13 text

Demo us-west us-east Docker CLI Docker CLI = RAM: 2GB CPU: 1core Swarm

Slide 14

Slide 14 text

http://github.com/docker/swarm #docker-swarm on freenode @vieux Thank You.