SlideShare a Scribd company logo
Docker
The What, Why and How
The What, Why and How
Souvik Maji
001310501056
BCSE UG IV
Docker
• Docker is an open source platform designed to make it easier to
create, deploy, and run applications by using containers.
• Automates the deployment of application inside “application
containers”.
• Released in 2013.
Stats around Docker
1200 docker
contributers
100,00
Dockerized
application
3 to 4
Million
Develope
rs using
Docker
100,000
Dockerized
Applications
300 Million
Downloads
32,000 Docker
Related Projects
• Initial
release in
2013
Container
• Operating system level virtualization.
• Containers allow developers to package up an application with all of
the parts it needs, such as libraries and other dependencies, and ship
it all out as one package.
Finally, Write once run everywhere.
Escape dependency hell
• Cross-platform dependencies.
• Conflicting dependencies.
• Custom dependencies.
How docker handle dependencies
• Docker solves the dependency problem using ‘Layers’.
• Sequence of build commands to inherit results from its previous step.
• Dockerfile:
FROM ubuntu:12.04
RUN apt-get update && apt-get install -y python python-pip curl
RUN curl –sSL https://github.com/shykes/helloflask/archive/master.tar.gz | tar -xzv
RUN cd helloflask-master && pip install -r requirements.txt
Why
• Isolation
• Expandable architecture
• Light weight
• Simplicity
• Workflow
• Community
Containers vs VMs
Virtualization
Virtualization refers to the act of creating a virtual (rather than actual)
version of something, including virtual computer hardware platforms,
storage devices, and computer network resources to run
simultaneously.
Emulation
• Full Virtualization
• Type 2 hypervisor
• Ex: VMware Player,
VirtualBox, QEMU, Bochs,
Parallels.
Paravirtualization
• Type 1 hypervisor
• Runs on bare metal.
• Ex: Xen, KVM, etc.
Why VMs fail
 Size
 Performance
 Portability
 Hardware-centric
Container-based Virtualization
chroot
• A chroot on Unix operating systems is an operation that changes the
apparent root directory for the current running process and its
children.
• Available since 1982
Namespace
• Allows processes to have their own set of users and in particular
allows a process root privileges inside a container but not outside.
• Initial release 2002
• Examples of resources that can be virtualized include process IDs,
hostnames, user IDs, network access, interprocess communication,
and filesystems
cgroup
• Cgroups allow processes to be grouped together and ensure that each
group gets a share of memory, cpu, disk I/O preventing any one
container from monopolizing any of these resources.
• Initial release 2007
LXC
• Userspace abstraction on top of cgroups and namespaces.
• Abailable since 2008
• LXC combines the kernel's cgroups and support for
isolated namespaces to provide an isolated environment for
applications. Docker can also use LXC as one of its execution drivers,
enabling image management and providing deployment services.
Docker
Another layer of abstraction on
top of LXC with even easier
tooling aimed at developers
looking for simple ways to
package their application.
Docker = Docker Engine + Docker Hub
Docker
Engine
Daemon CLI
Hub
Docker Images
• Docker can build images
automatically by reading the
instructions from a Dockerfile.
• Each Docker image references a
list of read-only layers that
represent filesystem differences.
• Layers are stacked on top of
each other to form a base for a
container’s root filesystem.
Filesystem
• A pluggable storage driver
architecture.
Supported dirvers: OverlayFS,
AUFS, Btrfs, Device Mapper, VFS,
ZFS
• Once you decide which driver is
best, you set this driver on the
Docker daemon at start time
Swarm Mode
• A swarm is a cluster of Docker engines, or nodes, where you
deploy services.
• A node is an instance of the Docker engine participating in the swarm.
• Worker nodes and Manager nodes.
• Services and tasks
• Load Balancer.
• Supports DNS
Workflow
Integration

More Related Content

What's hot

What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
javaonfly
 

What's hot (20)

Docker Container Introduction
Docker Container IntroductionDocker Container Introduction
Docker Container Introduction
 
Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30
 
Container Security: How We Got Here and Where We're Going
Container Security: How We Got Here and Where We're GoingContainer Security: How We Got Here and Where We're Going
Container Security: How We Got Here and Where We're Going
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Building microservices with docker
Building microservices with dockerBuilding microservices with docker
Building microservices with docker
 
Docker Presentation
Docker PresentationDocker Presentation
Docker Presentation
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
presentation on Docker
presentation on Dockerpresentation on Docker
presentation on Docker
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management services
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Performance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual MachinesPerformance comparison between Linux Containers and Virtual Machines
Performance comparison between Linux Containers and Virtual Machines
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker 101 - High level introduction to docker
Docker 101 - High level introduction to dockerDocker 101 - High level introduction to docker
Docker 101 - High level introduction to docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
SS Introduction to Docker
SS Introduction to DockerSS Introduction to Docker
SS Introduction to Docker
 
Docker 101
Docker 101Docker 101
Docker 101
 

Similar to Docker - the what why and hows

CONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptxCONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptx
SanjuGamesphere
 

Similar to Docker - the what why and hows (20)

Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker slides
Docker slidesDocker slides
Docker slides
 
CONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptxCONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptx
 
An introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersAn introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developers
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
Introduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersIntroduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developers
 
Introduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersIntroduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developers
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Docker Dojo
Docker DojoDocker Dojo
Docker Dojo
 
The ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of DockerThe ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of Docker
 
Kubernetes Online Training Hyderabad | Docker Online Training
Kubernetes Online Training Hyderabad | Docker Online TrainingKubernetes Online Training Hyderabad | Docker Online Training
Kubernetes Online Training Hyderabad | Docker Online Training
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container world
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
Everything you need to know about Docker
Everything you need to know about DockerEverything you need to know about Docker
Everything you need to know about Docker
 
Introduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes TrainingIntroduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes Training
 
Introduction Docker and Kubernetes | Docker & Kubernetes Tutorial | Dot Net T...
Introduction Docker and Kubernetes | Docker & Kubernetes Tutorial | Dot Net T...Introduction Docker and Kubernetes | Docker & Kubernetes Tutorial | Dot Net T...
Introduction Docker and Kubernetes | Docker & Kubernetes Tutorial | Dot Net T...
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Recently uploaded (20)

AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 

Docker - the what why and hows

  • 1. Docker The What, Why and How The What, Why and How Souvik Maji 001310501056 BCSE UG IV
  • 2. Docker • Docker is an open source platform designed to make it easier to create, deploy, and run applications by using containers. • Automates the deployment of application inside “application containers”. • Released in 2013.
  • 3. Stats around Docker 1200 docker contributers 100,00 Dockerized application 3 to 4 Million Develope rs using Docker 100,000 Dockerized Applications 300 Million Downloads 32,000 Docker Related Projects • Initial release in 2013
  • 4. Container • Operating system level virtualization. • Containers allow developers to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. Finally, Write once run everywhere.
  • 5. Escape dependency hell • Cross-platform dependencies. • Conflicting dependencies. • Custom dependencies.
  • 6. How docker handle dependencies • Docker solves the dependency problem using ‘Layers’. • Sequence of build commands to inherit results from its previous step. • Dockerfile: FROM ubuntu:12.04 RUN apt-get update && apt-get install -y python python-pip curl RUN curl –sSL https://github.com/shykes/helloflask/archive/master.tar.gz | tar -xzv RUN cd helloflask-master && pip install -r requirements.txt
  • 7. Why • Isolation • Expandable architecture • Light weight • Simplicity • Workflow • Community
  • 9. Virtualization Virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, storage devices, and computer network resources to run simultaneously.
  • 10. Emulation • Full Virtualization • Type 2 hypervisor • Ex: VMware Player, VirtualBox, QEMU, Bochs, Parallels.
  • 11. Paravirtualization • Type 1 hypervisor • Runs on bare metal. • Ex: Xen, KVM, etc.
  • 12. Why VMs fail  Size  Performance  Portability  Hardware-centric
  • 14. chroot • A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. • Available since 1982
  • 15. Namespace • Allows processes to have their own set of users and in particular allows a process root privileges inside a container but not outside. • Initial release 2002 • Examples of resources that can be virtualized include process IDs, hostnames, user IDs, network access, interprocess communication, and filesystems
  • 16. cgroup • Cgroups allow processes to be grouped together and ensure that each group gets a share of memory, cpu, disk I/O preventing any one container from monopolizing any of these resources. • Initial release 2007
  • 17. LXC • Userspace abstraction on top of cgroups and namespaces. • Abailable since 2008 • LXC combines the kernel's cgroups and support for isolated namespaces to provide an isolated environment for applications. Docker can also use LXC as one of its execution drivers, enabling image management and providing deployment services.
  • 18. Docker Another layer of abstraction on top of LXC with even easier tooling aimed at developers looking for simple ways to package their application.
  • 19. Docker = Docker Engine + Docker Hub Docker Engine Daemon CLI Hub
  • 20. Docker Images • Docker can build images automatically by reading the instructions from a Dockerfile. • Each Docker image references a list of read-only layers that represent filesystem differences. • Layers are stacked on top of each other to form a base for a container’s root filesystem.
  • 21. Filesystem • A pluggable storage driver architecture. Supported dirvers: OverlayFS, AUFS, Btrfs, Device Mapper, VFS, ZFS • Once you decide which driver is best, you set this driver on the Docker daemon at start time
  • 22. Swarm Mode • A swarm is a cluster of Docker engines, or nodes, where you deploy services. • A node is an instance of the Docker engine participating in the swarm. • Worker nodes and Manager nodes. • Services and tasks • Load Balancer. • Supports DNS

Editor's Notes

  1. Docker is an open source project to pack, ship and run any application as a lightweight container. Docker separates an application from its infrastructure. Infrastructures can be managed the same way you manage applications. Docker is a container management tool as well as an application deployment tool. Docker began as an open-source implementation of the deployment engine which powered dotCloud, a popular Platform-as-a-Service. It benefits directly from the experience accumulated over several years of large-scale operation and support of hundreds of thousands of applications and databases.
  2. Operating-system-level virtualization is a server virtualization method in which the kernel of an operating system allows the existence of multiple isolated user-space instances, . Such instances, which are sometimes called containers,[1] virtualization engines (VEs) or jails (FreeBSD jail or chroot jail), may look and feel like a real server from the point of view of its owners and users. Everything at google runs in a container. They use around 2 billion containers per week.
  3. A common problem for developers is the difficulty of managing all their application's dependencies in a simple and automated way. This is usually difficult for several reasons: Modern large scale application depends upon a combination of system libraries and binaries, language-specific packages, framework-specific modules, internal components developed for another project, etc Custom dependencies. A developer may need to prepare a custom version of their application's dependency. Some packaging systems can handle custom versions of a dependency, others can't - and all of them handle it differently
  4. Docker solves the problem of dependency hell by giving developers a simple way to express all their application's dependencies in one place. It simply orchestrates packaging systems use in a simple and repeatable way. How does it do that? With layers. Docker defines a build as running a sequence of Unix commands, one after the other, in the same container. Build commands modify the contents of the container (usually by installing new files on the filesystem), the next command modifies it some more, etc. Since each build command inherits the result of the previous commands, the order in which the commands are executed expresses dependencies. Docker doesn't care how dependencies are built - as long as they can be built by running a Unix command in a container.
  5. A method of logically dividing mainframes to allow multiple app
  6. A method of logically dividing mainframes to allow multiple app The hypervisor handles creating the virtual environment on which the guest virtual machines operate. It supervises the guest systems and makes sure that resources are allocated to the guests as necessary. The hypervisor sits in between the physical machine and virtual machines and provides virtualization services to the virtual machines. To realize it, it intercepts the guest operating system operations on the virtual machines and emulates the operation on the host machine's operating system.
  7. as Type 2 hypervisor. It is installed on the top of host operating system which is responsible for translating guest OS kernel code to software instructions. The translation is done entirely in software and requires no hardware involvement. Emulation makes it possible to run any non-modified operating system that supports the environment being emulated. The downside of this type of virtualization is additional system resource overhead that leads to decrease in performance compared to other types of virtualizations.
  8. Paravirtualization, also known as Type 1 hypervisor, runs directly on the hardware, or “bare-metal”, and provides virtualization services directly to the virtual machines running on it. It helps the operating system, the virtualized hardware, and the real hardware to collaborate to achieve optimal performance. These hypervisors typically have a rather small footprint and do not, themselves, require extensive resources.
  9. In theory different virtualization formats should allow every developer to automatically package their application into a "machine" for easy distribution and deployment. In practice, that almost never happens, for a few reasons: Size - VMs are very large which makes them impractical to store and transfer. Performance- running VMs consumes significant CPU and memory, which makes them impractical in many scenarios, for example local development of multi-tier applications, and large-scale deployment of cpu and memory-intensive applications on large numbers of machines. Portability: competing VM environments don't play well with each other. Although conversion tools do exist, they are limited and add even more overhead. Hardware-centric: VMs were designed with machine operators in mind, not software developers. As a result, they offer very limited tooling for what developers need most: building, testing and running their software. For example, VMs offer no facilities for application versioning, monitoring, configuration, logging or service discovery.
  10. Container-based virtualization, also know as operating system-level virtualization, enables multiple isolated executions within a single operating system kernel. It has the best possible performance and density and features dynamic resource management. The isolated virtual execution environment provided by this type of virtualization is called container and can be viewed as a traced group of processes.
  11. Uses: testing and development, dependency control, recovery, privilege seperation A program that is run in such a modified environment cannot name (and therefore normally cannot access) files outside the designated directory tree. The modified environment is called a chroot jail.
  12. Resource limiting – groups can be set to not exceed a configured memory limit, which also includes the file system cache[8][9] Prioritization – some groups may get a larger share of CPU utilization[10] or disk I/O throughput[11] Accounting – measures a group's resource usage, which may be used, for example, for billing purposes[12] Control – freezing groups of processes, their checkpointing and restarting[12]
  13. Since version replaced LXC with their own implementation – libcontainer, written in Golang.
  14. Daemon – builds images, runs and manages containers, restful api Hub – provides docker services, library of public images, storage of images(free, paid), automated builds(trigger on commit)
  15. Dockerfile, a text file that contains all the commands, in order, needed to build a given image. Dockerfiles adhere to a specific format and use a specific set of instructions. Docker hub for sharing images. Sharing promotes smaller images.
  16. Docker has a pluggable storage driver architecture. This gives you the flexibility to “plug in” the storage driver that is best for your environment and use-case. Each Docker storage driver is based on a Linux filesystem or volume manager. Further, each storage driver is free to implement the management of image layers and the container layer in its own unique way. This means some storage drivers perform better than others in different circumstances. . As a result, the Docker daemon can only run one storage driver, and all containers created by that daemon instance use the same storage driver
  17. Swarm: The cluster management and orchestration features embedded in the Docker Engine are built using SwarmKit. Docker engines participating in a cluster are running in swarm mode. You enable swarm mode for an engine by either initializing a swarm or joining an existing swarm. . The Docker Engine CLI and API include commands to manage swarm nodes (e.g., add or remove nodes), and deploy and orchestrate services across the swarm. Worker nodes receive and execute tasks dispatched from manager nodes. By default manager nodes also run services as worker nodes, but you can configure them to run manager tasks exclusively and be manager-only nodes. An agent runs on each worker node and reports on the tasks assigned to it. The worker node notifies the manager node of the current state of its assigned tasks so that the manager can maintain the desired state of each worker. A task carries a Docker container and the commands to run inside the container. It is the atomic scheduling unit of swarm. Manager nodes assign tasks to worker nodes according to the number of replicas set in the service scale. Once a task is assigned to a node, it cannot move to another node. It can only run on the assigned node or fail. The swarm manager uses ingress load balancing to expose the services you want to make available externally to the swarm. The swarm manager can automatically assign the service a PublishedPort or you can configure a PublishedPort for the service. You can specify any unused port. If you do not specify a port, the swarm manager assigns the service a port in the 30000-32767 range. Manager nodes also perform the orchestration and cluster management functions required to maintain the desired state of the swarm. In the replicated services model, the swarm manager distributes a specific number of replica tasks among the nodes based upon the scale you set in the desired state. Replicated serviceFor global services, the swarm runs one task for the service on every available node in the cluster. Manager nodes elect a single leader to conduct orchestration tasks.
  18. Aws, ansible, google cloud platform, ibm bluemix, kubernotes, vagrant bluebox, vmware vsphere