Docker
Docker uses
operating-system-level virtualizationtodevelopanddeliversoftware in packages calledcontainers
The software that hosts the containers is called
Docker Engine
Docker Feature
Containersareisolatedfrom each other andbundletheir ownsoftware,librariesandconfigurationfiles, they cancommunicatewith each other through well-definedchannels.
All containers are run by a
single operating-system kerneland are thusmore lightweight than virtual machines.
Containers are created from
imagesthat specify their precise contents. Images areportable.
Docker Technology
Building on top of facilities provided by the
Linux kernel(primarilycgroupsandnamespaces), a Docker container, unlike a virtual machine, does not require or include a separate operating system. Instead, it relies on thekernel's functionalityand uses resourceisolation for CPU and memory,andseparate namespacestoisolatethe application’s view of the operating system. Docker accesses the Linux kernel’s virtualization features eitherdirectlyusing thelibcontainer library, orindirectlyvialibvirt,LXC(Linux Containers) orsystemd-nspawn.
Docker Terminology
Docker daemonThe Docker daemon, called
dockerd, is apersistent processthat 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 containerA Docker container is a
standardized, encapsulated environmentthat runs applications. A container is managed using theDocker API or CLIDocker imageA Docker image is a
read-only templateused to build containers. Images are used tostore and ship applicationsDocker serviceA 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 registryA Docker registry is a
repositoryfor 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 HubandDocker CloudDocker ComposeDocker Compose is a tool for
defining and running multi-container Docker applications. It usesYAML filestoconfigurethe application’s services and performs the creation and start-up process of all the containers witha single commandDocker SwarmDocker Swarm provides
native clusteringfunctionality 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