Docker
Docker uses
operating-system-level virtualization
todevelop
anddeliver
software in packages calledcontainers
The software that hosts the containers is called
Docker Engine
Docker Feature
Containers
areisolated
from each other andbundle
their ownsoftware
,libraries
andconfiguration
files, they cancommunicate
with each other through well-definedchannels
.
All containers are run by a
single operating-system kernel
and are thusmore lightweight than virtual machines
.
Containers are created from
images
that specify their precise contents. Images areportable
.
Docker Technology
Building on top of facilities provided by the
Linux kernel
(primarilycgroups
andnamespaces
), a Docker container, unlike a virtual machine, does not require or include a separate operating system. Instead, it relies on thekernel's functionality
and uses resourceisolation for CPU and memory
,andseparate namespaces
toisolate
the application’s view of the operating system. Docker accesses the Linux kernel’s virtualization features eitherdirectly
using thelibcontainer library
, orindirectly
vialibvirt
,LXC
(Linux Containers) orsystemd-nspawn
.
Docker Terminology
Docker daemon
The Docker daemon, called
dockerd
, is apersistent process
that manages Docker containers and handles container objects. The Docker client program, calleddocker
, provides a command-line interface that allows users to interact with Docker daemonsDocker container
A Docker container is a
standardized, encapsulated environment
that runs applications. A container is managed using theDocker API or CLI
Docker image
A Docker image is a
read-only template
used to build containers. Images are used tostore and ship applications
Docker service
A Docker service allows containers to be
scaled across multiple Docker daemons
. The result is known as aswarm
, a set of cooperating daemons that communicate through the Docker APIDocker registry
A Docker registry is a
repository
for Dockerimages
. Docker clients connect to registries todownload
(“pull”) images for use orupload
(“push”) images that they have built. Registries can be public or private. Two main public registries areDocker Hub
andDocker Cloud
Docker Compose
Docker Compose is a tool for
defining and running multi-container Docker applications
. It usesYAML files
toconfigure
the application’s services and performs the creation and start-up process of all the containers witha single command
Docker Swarm
Docker Swarm provides
native clustering
functionality for Docker containers, whichturns a group of Docker engines into a single virtual Docker engine
. In Docker 1.12 and higher, Swarm mode is integrated with Docker Engine