History of containerization• 1960’s mainframe• 1990’s hardware virtualization• 1990’s OS virt precursors: BSD Jails, Solaris
zones• 2006 Cloud IaaS• 2009 platform virtualization (PaaS)• 2013 Docker
See @bcantrill’s deck http://www.slideshare.net/bcantrill/docker-and-the-future-of-containers-in-production
Docker now
A platform to build, ship, and run any app, anywhere
docker engine docker hub docker-machine docker-compose docker-swarm kitematic
Isolation using Linux kernel features
namespaces pid mnt net uts ipc user
cgroups memory cpu blkio devices
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
docker-machine
docker-machine create -d azure \
—azure-subscription-id="c4f51be3-784c-xxx-7c50ad9e1b7c" \
--azure-subscription-cert="/Users/pat/.ssh/docker-azure-cert.pem" \
--azure-location="East US" \
--azure-size=Small \
--azure-username="pat" \
pat-docker-machine-n
Swarm in a nutshell Docker REST API (>85%)
Resource management (CPU, Mem, Networking)
Advanced scheduling with constraints and affinities
Multiple Discovery Backends (hub, etcd, consul, zookeeper)
TLS: Encryption & Authentication
Swarm beta integrations Fully integrated with Machine Partially integrated with Compose Mesos integration has started in
collaboration with Mesosphere.
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
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
Separation of concerns:Dave the Developer
Inside my container:− my code− my libraries− my package manager− my app− my data
Separation of concerns:Oscar the Ops guy
Outside the container:− logging− remote access− network configuration− monitoring
PowerstripPrototyping Docker Plugins
https://clusterhq.com/blog/powerstrip-prototype-docker-extensions-today/
Couchbase imagedocker run -d \
-v ~/couchbase:/opt/couchbase/var \
-p 8091:8091 \
—name my-couchbase-server \
couchbase
https://registry.hub.docker.com/_/couchbase/
Learning• http://docs.docker.com/• http://slideshare.net/chanezon• https://github.com/chanezon/azure-linux• https://registry.hub.docker.com/_/couchbase/• https://github.com/tleyden/try-cb-nodejs
103
References• talk about cloud platforms: Managing complexity in giant systems
http://www.slideshare.net/chanezon/tackling-complexity-in-giant-systems-approaches-from-several-cloud-providers
• talk about Devops, the Microsoft Wayhttp://www.slideshare.net/chanezon/devops-the-microsoft-way
• MS Open Tech https://msopentech.com/ Blog, VM Depot• P@ Linux on Azure pages https://github.com/chanezon/azure-linux/• Tim’s CoreOS tutorial https://github.com/timfpark/coreos-azure• Tim’s Deis documentation • @jpetazzo’s presentations http://www.slideshare.net/jpetazzo/• @bcantrill’s deck http://www.slideshare.net/bcantrill/docker
-and-the-future-of-containers-in-production• @vieux deck on Swarm • @htchen deck on Mesos + Swarm
https://speakerdeck.com/tnachen/docker-swarm-plus-mesos