Introduction to docker

Post on 06-Aug-2015

563 views 4 download

Tags:

transcript

Introduction to Docker

@botchagalupe

• a.k.a. John Willis

• 35 Years in IT Operations

• Exxon, Canonical, Chef, Enstratius, Socketplane

• Devopsdays Core Organizer

Agenda• Part 1 (Overview)!

• Why Docker?!

• Docker Platform!

• Docker Solutions!

• Part 2 (Docker and Devops)!

• Part 3 (Demos)!

• Docker Installation!

• Docker (Basic Image) Workflow!

• Docker (Build) Workflow!

• Docker (Volumes) Workflow!

• Docker Networking

Docker Blog

Why Docker?• Isolation

• Lightweight

• Simplicity

• Workflow

• Community

Killer Apps

• Local Application Development and Test

• CI/CD

• Containers as a Service

• Build your own Pass

Docker Community• 21,500+ GitHub stars

• 400M+ Docker Engine downloads

• 100,000+ "Dockerized" applications in the Docker Hub Registry

• 180+ Docker Meetup Groups in 50 countries

• 150,000 live apps are running off Docker

• 930+ community contributors

• 3 to 4 Million - Developers using Docker

• 50,000 third-party projects on GitHub using Docker as well as partnerships spanning PaaS, operating systems, hosting services, CI platforms, and more.

• Over 100 user-generated case studies available from companies such as eBay, Rackspace, New Relic, Gilt, Spotify, Cloudflare, Yandex, Cambridge Healthcare, Yelp and RelatelQ.

Docker Engine

• Docker Daemon

• Docker CLI

Docker Daemon

• Builds Images

• Runs and Manages Containers

• RESTful API

Docker CLI• docker build # Build an image from a Dockerfile

• docker images # List all images on a Docker host

• docker run # Run an image

• docker ps # List all running and stopped instances

• docker stop # Stop a running instances

• docker rm # Remove an instance

• docker rmi # Remove an image

Docker Architecture

Docker Platform Workflow (Volumes)

Docker Hub• Provides Docker Services

• Library of public images

• Storage for your images

• free for public images

• cost for private images

• Automated builds(link github/bitbucket repo; trigger build on commit)

Docker Hub

Docker Solutions• Docker Compose

• Docker Machine

• Docker Swarm

• Kitematic

• Docker Networking

• Docker Trusted Registry

Docker Compose

Docker Machine

• Install Docker on a Host

• Starting, stopping, restarting the Docker Engine

• Upgrading Docker on a Host

• Configuring the Docker client to talk to your host (TLS)

Docker Swarm

• Discovery Services

• Advanced Scheduling

• API

Docker Networking

Docker Networking

“We'll do for Networking, What Docker did for Compute.”

Docker Networking• Make “network” & “service” as top-level objects

!

• Provide a pluggable networking stack

!

• Span networks across multiple hosts

!

• Support multiple platforms

Container Network Model (CNM)• Endpoint

!

• Network

!

• Sandbox

Libnetwork

• Open Sourced in April

!

• Over 200 Pull Requests

!

• Over 200 GitHub Stars

!

• Windows and FreeBSD ports in progress

Part 2

Docker and Devops

Docker and Devops

Docker and Devops

• Velocity

• Variation

• Visualization

Part 3

Docker Installation

Docker Installation

Docker Installation

Demo

Docker Run Commands

Docker Platform Workflow (Build Images)

• Build a Local Image

• Run an Image on Docker Host

Demo

Docker Build

Docker Platform Workflow (Volumes)

• Using Volumes

• Mounting Docker Host Volumes

Docker Platform Workflow (Volumes)

Demo

Docker Volumes

Docker Networking

Docker Networking

Docker Networking

Docker Networking

Docker Networking

Docker Networking• Weave

• Flannel

• Calico

• Triton

• Socketplane

Docker Networking

Docker Networking• Container Network Model (or CNM)

• Notion of a Default Network

• Default Multi-Host Data-path for CNM

• Network API

• Docker Network CLI

ReferencesWHY I LOVE DOCKER… AND WHY YOU’LL LOVE IT TOO!https://blog.docker.com/2015/03/why-i-love-docker-and-why-youll-love-it-too/!!DOCKER TUTORIAL 1 – INSTALLING DOCKER!https://blog.docker.com/2015/03/docker-tutorial-1-installing-docker/!!DOCKER TUTORIAL 2 – DOCKER RUN COMMAND BASICS!https://blog.docker.com/2015/03/docker-tutorial-2-docker-run-command-basics/!!DOCKER TUTORIAL 3 – FUN WITH VOLUMES!https://blog.docker.com/2015/04/docker-tutorial-3-fun-with-volumes/!!DOCKER TUTORIAL 4 – MORE RUN WITH A COUPLE OF EXTRA GOODIES!https://blog.docker.com/2015/04/docker-tutorial-4-more-run-with-a-couple-of-extra-goodies/!!DOCKER TUTORIAL 6 – DOCKERFILE (PART 1)!https://blog.docker.com/2015/04/docker-tutorial-6-dockerfile-part-1/!!DOCKER TUTORIAL 7 – DOCKERFILE (PART 2)!https://blog.docker.com/2015/04/docker-tutorial-7-dockerfile-part-2/

john.willis@docker.com @botchagalupe