Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new in Docker-land? (Docker Glasgow, Aug...

What's new in Docker-land? (Docker Glasgow, August 2016)

Guy & I will be walking you through all the latest developments in Docker Land, including Docker Engine 1.12, Docker Compose 1.8, and Docker for Mac and Windows.

Also well as these Docker updates, we'll be providing a quick review of DockerCon 2016 and highlighting some of the best talks for you to watch in your own time.

David McKay

August 05, 2016
Tweet

More Decks by David McKay

Other Decks in Technology

Transcript

  1. New Features • SwarmKit • Security • Complete Orchestration ◦

    Load Balancing ◦ Service Discovery ◦ Healthchecks • Plugins • Docker Store • Docker for Mac / Windows
  2. Vocabulary • Swarm • SwarmKit ◦ Raft • Node ◦

    Manager ◦ Worker • Service ◦ Task
  3. Creating / Joining a Swarm $ docker swarm init $

    docker swarm join --token BLAH ip:2377
  4. Swarm2k https://github.com /swarm2k /swarm2k /blob/master/PROPOSAL.md • Over 2,000 connected swarm

    workers • Managed by three swarm managers • Tested resiliency of manager failure • Tested load balancing and service discovery
  5. The new beta: Docker for AWS and Azure • Uses

    Cloudformation stack with custom AMIs to spin up a swarm cluster • Allows you to expose ports, on ELBs, from the console • Use the new Distributed App Bundle format • All the benefits of Swarm, but running natively on AWS, little config on your side • Fault tolerant as long as you set it to have multiple masters • Sets up its own network http://beta.docker.com
  6. The new beta: Docker for AWS and Azure • Even

    Docker are calling parts Alpha • Uses DynamoDB as a distributed lock • IAM permissions are pretty wide open ( “Resource”: “*” statements) • No SSHing onto the worker nodes
  7. Other developments • Labelling schemas - still in development (Not

    Docker specific, but gaining steam like the OCI) ◦ Build time labels at the moment ◦ Help developers/users understand where the code in a container came from, and when ◦ How to run it! • Extra depth of information compared to imagelayers.io • Everyone loves more badges! http://label-schema.org https://microbadger.com/
  8. Schema examples • org.label-schema.usage= “/usr/doc/app-usage.txt” • org.label-schema.docker.cmd= “docker run -d

    -p 5000:5000 -v config.json:/etc/config.json myapp” • https://microbadger.com/#/images/vidsyhq/ruby-ca
  9. Plugins $ docker plugin install tiborvass/no-remove Plugin "tiborvass/no-remove" is requesting

    the following privileges: - network: [host] - mount: [/data] - device: [/dev/cpu_dma_latency] Do you grant the above permissions? [y/N] y tiborvass/no-remove $ docker plugin enable tiborvass/no-remove https://docs.docker.com/engine/extend/plugins/
  10. Dockerfile PreProcessing • Another level of Domain specific abstraction •

    Single place to manage updating package versions etc. • From multi-line CMD statements to simple commands • However: means needing to preprocess every Dockerfile as part of the build pipeline https://github.com/garethr/dockerfilepp
  11. Preprocessors From: RUN apt-get update && \ apt-get install -y

    wget=1.17.1-1ubuntu1 && \ wget https://apt.puppetlabs.com/puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \ dpkg -i puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \ rm puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \ apt-get update && \ apt-get install --no-install-recommends -y puppet-agent="$PUPPET_AGENT_VERSION"-1"$UBUNTU_CODENAME" && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* To: PUPPET_INSTALL