The Docker daemon is a service that runs on your host operating system. It currently only runs on Linux because it depends on a number of Linux kernel features, but there are a few ways to run Docker on MacOS and Windows too. TheDocker daemon itself exposes a REST API.
Docker container is an open source software development platform. Its main benefit is to package applications in “containers,” allowing them to be portable among any system running the Linux operating system (OS).
Docker Hub is a cloud-based registry service which allows you to link to code repositories, build your images and test them, stores manually pushed images, and links to Docker Cloud so you can deploy images to your hosts.
Docker Understanding, What is Docker? Why Docker? How do I containerize something?
1. Intro to Docker
The contents of the the slides have been stol..., umm,
liberally borrowed from Docker Slideshare materials.
Thanks to everyone at Docker, Inc!
1By Yogesh Wadile (Software engineer, 9+year experience Yogesh.it2010@gmail.com)
8. Why Developers Care
• Build once... (finally) run anywhere*
• A clean, safe, hygienic, portable runtime environment for
your app.
• No worries about missing dependencies, packages and
other pain points during subsequent deployments.
• Run each app in its own isolated container, so you can run
various versions of libraries and other dependencies for each
app without worrying.
• Automate testing, integration, packaging...anything you
can script.
• Reduce/eliminate concerns about compatibility on di"erent
platforms, either your own or your customers. Cheap, zero-
penalty containers to deploy services. A VM without the
overhead of a VM. Instant replay and reset of image
snapshots.
• * Where "anywhere" means an x86 server running a modern Linux
kernel (3.2+ generally or 2.6.32+ for RHEL 6.5+, Fedora, & related)
8
9. WhyAdministratorsCare
Configure once... run anything
Make the entire lifecycle more e cient, consistent, and
repeatable
Increase the quality of code produced by developers.
Eliminate inconsistencies between development, test,
production, and customer environments.
Support segregation of duties.
Significantly improves the speed and reliability of
continuous deployment and continuous integration
systems.
Because the containers are so lightweight, address
significant performance, costs, deployment, and
portability issues normally associated with VMs.
9
10. MoreTechnicalDetails
Why
Run everywhere
Regardless of kernel version
Regardless of host distro
Physical or virtual, cloud or not
Container and host architecture must
match...
Run anything
If it can run on the host, it can run in the
container
If it can on a Linux kernel, it can run
What
High level: a lightweight V
Own process space
Own network interface
Can run stu" as root
Can have its own /sbin/init (di"erent
host)
<<machine container>>
Low level: chroot on steroi
Can also not have its own /sbin/init
Container = isolated processes
Share kernel with host
<<application container>>
10
11. VMsvsContainers
11
Instead of hosting each operating system per
each application, some common resources
can be shared, and there is something called
“docker engine,” which sits on top of an
Operating System as shown below.
A hypervisor or virtual machine monitor is
computer software, firmware or hardware that
creates and runs virtual machines. A computer on
which a hypervisor runs one or more virtual
machines is called a host machine, and each virtual
machine is called a guest machine.
More Detail :
https://www.vmware.com/topics/glossary/content/
hypervisor
15. Docker engine:
•Docker engine or Docker is a client server
application that builds and executes containers
using Docker components
•REST API is a primary mode of communication
between Docker Client and Docker Daemon
•Docker toolbox is used for older Windows and
Mac systems with the following features:
Docker daemon:
•Docker Daemon is a server which interacts with
the operating system and performs all kind of
services
•The Docker Daemon listens for REST API request
and performs the operation
•A command dockerd is used to start a Docker
Daemon
•Docker Host runs the Docker Daemon and
Registry
16. Ecosystem Support
Operating systems
Virtually any distribution with a 2.6.32+ kernel
Red Hat/Docker collaboration to make work across RHEL 6.4+, Fedora, and
other members of the family (2.6.32 +)
CoreOS—Small core OS purpose built with Docker
OpenStack
Docker integration into NOVA (& compatibility with Glance, Horizon, etc.)
accepted for Havana release
Private PaaS
OpenShift, Solum (Rackspace, OpenStack), Other TBA
Public PaaS
Deis, Voxoz, Cocaine (Yandex), Baidu PaaS
Public IaaS
Native support in Rackspace, Digital Ocean,+++
AMI (or equivalent) available for AWS & other
DevOps Tools
Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++
Orchestration tools
Mesos, Heat, ++
Shipyard & others purpose built for Docker
Applications
1000’s of Dockerized applications available at index.docker.io
16
17. Want to Learn More?
• www.docker.io Documentation
• Getting started (tutorial, installation, guide, etc)
• Introductory whitepaper
Docker play : https://labs.play-with-docker.com
Docker Cheat-sheet :
https://github.com/wsargent/docker-cheat-
sheet#dockerfile
17