The document discusses containerization using Docker. It covers topics like containers vs virtual machines, Docker architecture and features, building Docker images, networking and linking containers, Docker Compose for multi-container apps, container security, and orchestration tools like Docker Swarm, Kubernetes, and Mesos/Marathon for running containers at scale. It provides examples of using Docker, Amazon ECS, Docker Swarm, and Mesos/Marathon.
7. Containers
● Run in user space
● Have an isolated user space
● OS architecture is shared
● Only parts created are bins/libs
● Lightweight compared to VM’s
8. Docker
● Open source project
● Linux namespaces & control groups
● Union File System
● Lightweight and fast
● Usability
● Easy to Modularize apps
● Easy to scale apps
● Dockerhub as central repository
10. Why Micro Services
● Service oriented architecture
● Loosely coupled, Tightly aligned
● High Developer productivity
● Regressions easy to find, correct
● Releases have zero overhead
● Rapid iteration using real consumer metrics
● Very less overhead in doing a new release
● Continuous Delivery
12. Docker setup
● Ubuntu
○ Installation using apt-get
○ 1.12 aws images on beta signup
● Windows
○ Docker Toolbox
○ Docker 1.12
● Mac
○ Docker Toolbox
○ Docker 1.12
13. Dockerhub
● Dockerhub
● Public repository
● Private repository
● Official images
● User submitted images
● Private docker infrastructure
14. Docker images
● What is a docker image
● Creating a container from an image
● Listing images
● Removing images
● Removing images
● Searching docker images
25. CI and deployment using Jenkins
● Using Jenkins for CI
● Docker plugins
● ssh build and deployment
26. Securing Docker containers
● VM vs Docker containers
● Resource Isolation
● Cgroups
● Non root user
● A trusted repository of software
● Filesystems need to be read-only
● Copy on write
● Security-Enhanced Linux
27. Orchestration
● Running containers on a cluster
● High availability
● Load balancing and Auto scaling
● Mesos, Marathon (Apache project)
● Docker Swarm (native Docker v 1.12 )
● GCE Kubernetes PAAS (Google project)
● AWS ECS PAAS
● AWS containers on Beanstalk PAAS