What is Docker Container?

Docker is an open source project for developing, shipping, and running applications. It automates the deployment of Linux applications inside Linux containers. Docker provides the capability to package an application with its run-time dependencies into a container. It provides a Docker CLI command line tool for the lifecycle management of image-based containers. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, we can manage our infrastructure in the same ways we manage our applications. Linux containers enable rapid application deployment, shipping, testing, maintenance, and troubleshooting while improving security. It reduces the delay between writing code and running it in production. Docker allows customers to increase staff efficiency, and deploy third-party applications faster. It enables a more agile development environment, and manage resources more tightly. Docker provides tools and a platform to manage the life-cycle of containers. It encapsulates your applications into Docker containers, distribute, and ship those containers to your teams for further development. You can deploy those applications to your production environment, whether it is in a local data center or the cloud.

 

Components of Docker containers

1) Container: Each container is based on an image. It is an application sandbox that holds necessary configuration data.

2) Image: Image is a read-only layer and it is a static snapshot of the containers’ configuration. It cannot be modified and can be saved only by creating a new image.

3) Platform Image:  Platform images define the run-time environment and it is read-only, so any changes are reflected in the copied images stacked on top of it.

4) Registry: It a repository of images and are public or private repositories that contain images available for download.

5) Docker file: It is a configuration file with build instructions for Docker images.

 

In Linux, docker provides an additional layer of abstraction and automation of operating system level virtualization. It uses the resource isolation features of the Linux kernel such as cgroups and kernel namespaces, and a union-capable file system such as aufs and others to allow independent “containers” to run within a single Linux instance. It avoids the overhead of starting and maintaining virtual machines. The Linux kernel’s support for namespaces isolates an application’s view of the operating environment, it includes: process trees, network, user IDs and mounted file systems. The kernel’s cgroups provide resource limiting, including the CPU, memory, block I/O and network. Docker contains the libcontainer library as its own way to directly use virtualization facilities provided by the Linux kernel, in addition to using abstracted virtualization interfaces via libvirt, LXC (Linux Containers) and systemd-nspawn.

 

Advantages

1) Rapid application deployment: The containers include the minimal run-time requirements of the application by reducing the size allowing them to be deployed quickly.

2) Portability across machines: With Docker, an application and all its dependencies can be wrap into a single container that is independent of the host version of the Linux kernel, platform distribution. This container can be moved to another machine that runs Docker, and it can be executed there without compatibility issues.

3) Version control and component reuse: With Docker, you can use different versions of a container, inspect differences, or rollback to previous versions. It allows to reuse components from the preceding layers, which makes lightweight.

4) Sharing: With remote repository, it allows to share your container with others and it is also possible to configure your own private repository.

5) Lightweight footprint and minimal overhead: Docker facilitates rapid delivery and it reduces the time to deploy new application containers.

6) Simplified maintenance: Docker provides simplified maintenance by reducing the effort and risk of problems with application dependencies.

 

To install Docker package

# yum install docker-engine

 

To start the Docker daemon

# service docker start

 

If you need any further assistance please contact our support department.

Was this answer helpful? 0 Users Found This Useful (0 Votes)