1. Docker Introduction.pdf
- 2. Agenda
In this session, you will learn about:
• Overview of Compute Service
• Virtualization Vs Containerization
• What is Docker?
• Why Docker Containers?
• Docker Terminologies
• Docker Editions
- 3. Overview of Compute Service
• Bare Metal Infrastructure
• Virtualized Infrastructure
• Containerized Infrastructure
- 5. Disadvantages of Bare-Metal Servers
• One-App One-Server
• More expensive (hardware level)
• Mis-match of capacity
• Expensive maintenance
- 6. What is Virtualization?
• Virtualization is the technique of virtualizing the
underlying Infrastructure, such as Memory, CPU,
Storage…
• Guest operating systems run on top of a Host
operating system (Hypervisor).
• We can run different flavors of operating systems in
different virtual machines all running on the same
Infrastructure.
• Virtualization eliminates the need for extra
hardware resource.
Hardware (CPU,Memory,Disk I/O ,Network)
Host Operating System (Tyep-2)
Hypervisor (KVM, Hyper-V, VirtualBox, ESX/ESX-i)
Guest Virtual Hardware 1 Guest Virtual Hardware 2
Guest Operating System 1 Guest Operating System 2
Application 1 Application 2
Virtual Machine 1 Virtual Machine 2
Bins/Libs Bins/Libs
- 7. Hypervisors
• Hypervisor: A hypervisor allows one host computer to support
multiple guest VMs by virtually sharing its resources, such as
Memory, CPU and Storage.
• Types of Hypervisor:
• Type-1 Hypervisors – Runs directly on top of Hardware.
• KVM, Xen, Hyper-V, ESX/ESXi…
• Type-2 Hypervisors – Runs on top of Host OS.
• Oracle VB, VMware Workstation…
- 9. VMs are great, but they’re far from perfect!
• Each guest OS will have its own kernel and set of libraries and dependencies.
• Since each VM includes an OS and a virtual copy of all the hardware the OS requires, VMs
require significant RAM and CPU resources.
• VMs incur a lot of overhead beyond what is being consumed by your application logic.
• Since each VM has its own dedicated OS, License cost is involved.
• Patching, Upgrades, Security, Hardening requires larger team and time.
• Boot up process is longer and takes more time.
- 10. Containerization
• Containers are a method of operating system
level virtualization.
• Containers allow you to run an application and
its dependencies in resource-isolated processes.
• No guest OS overhead and utilizes a host’s
operating system.
• Containers share relevant OS libraries &
resources as and when needed unlike virtual
machines.
• Containers are Lightweight and Faster than
Virtual Machines.
Hardware (CPU,Memory,Disk I/O ,Network)
Host Operating System (Must)
App1 App2 App3
C1 C2 C3
App4
C4
App5
C5
App6
C6
CRI ( Docker, containerd, CRI-O)
Bins/Libs Bins/Libs
Bins/Libs
Bins/Libs
Bins/Libs
Bins/Libs
- 12. Virtualization vs Containerization
Hardware (CPU,Memory,Disk I/O ,Network)
Host Operating System (Tyep-2)
Hypervisor (KVM, Hyper-V, VirtualBox, ESX/ESX-i)
Hardware (CPU,Memory,Disk I/O ,Network)
Host Operating System (Must)
CRI ( Docker, containerd, CRI-O)
Guest Virtual Hardware 1 Guest Virtual Hardware 2
Guest Operating System 1 Guest Operating System 2
Application 1 Application 2
Virtual Machine 1 Virtual Machine 2
Bins/Libs Bins/Libs
C4 C5 C6
App1 App2 App3
C1 C2 C3
App4 App5 App6
Bins/Libs Bins/Libs
Bins/Libs
Bins/Libs
Bins/Libs
Bins/Libs
- 13. Virtualization
• Method of Hardware level Virtualization
• Each VM needs dedicated Guest OS
• Larger in size
• Dedicated Kernel
• Each VM will have its own Libraries and Binaries
• Longer boot process
• Takes more time for creating
• Consumes more resources
• Migrating virtualized application is challenging due to hardware
incompatibility
Containerization
• Method of OS level Virtualization
• Containers share host machine OS
• Smaller in size
• Share the Host kernel
• Share relevant Libraries and Binaries
• Shorter boot process
• Takes Few seconds
• Consume less resources
• Migrating Containerized application is
much easier
- 14. What is Docker?
• Docker, Inc. – The company
• Docker the technology
• Docker is an open source platform for developing, shipping, and running
applications.
• Docker enables you to separate your applications from your infrastructure
so you can deliver software quickly.
• Docker manages the lifecycle of the container.
• The use of containers to deploy applications is called containerization.
- 15. History of Docker Inc.
• Developed using Linux core components, in 2013.
• It was developed as an internal project at a platform-as-a-service company called
dotCloud and later renamed as Docker.
- 16. APP1
Libraries
APP1
Libraries
Container 1 Container 2
Docker Engine
Host OS
Docker Terminologies
• Runs Application within docker Container
• Alternative to VMs & use host’s OS
3 Terminologies to remember
• Docker image is build using dockerfile
• Dockerfile contain all the application dependencies
• Docker container is an instance of a docker image
- 18. Docker Editions
• Docker Community Edition (CE) is ideal for individual developers and small
teams looking to get started with Docker and experimenting with container-
based apps.
• Docker Enterprise Edition (EE) is designed for enterprise development and IT
teams who build, ship, and run business critical applications in production at
scale. Renamed as MKE – Nov 2019