Basic Terminologies of Docker
Docker is a way of creating encapsulation based computer platform and each has its own Linux copy. Each of these encapsulated environments in computer is termed as ‘container’. Each Docker container is capable of sharing the kernel of host machine. This gives the actual meaning that there are no hypervisors or extendable boot-ups.
Initiating a Docker container is really fast. In this chapter, let us have a brief look into the major terminologies of Docker technology.
It becomes much easier to use Docker technology if you understand its basics. Listed below are few of the important Docker terminologies:
The term ‘sandbox’ denotes the computing environment with which whatever happens inside sandbox remains in it. If you are going to perform ‘rm –rf’ inside sandbox, sandbox contents will be erased but the host machine that has sandbox undergoes zero damage. If a security violation is to be created in sandbox through harmful factors, the badguy will cause damage just to the sandbox and never the host system. The practical nature of damage depends on the nature of security violation on sandbox and the capacity and knowledge of ‘badguy’.
The Docker container is dynamic implementation of Docker image. Multiple containers can easily be initiated from a single Docker image. Containers provide needed consistency for DevOps (development and operations). Docker technology makes use of containers for process isolation, which is the major benefit of using Docker. The essential features of a Docker container are layered approach and writable nature. Writable Nature: Docker container is a temporary storage. Layered Approach: Using layered approach, Docker containers are built above Docker
Docker image can be compared to architectural sketch of house. Similarly, the container is house that is built with this drawing. The perfect analogy could be OOP (Object Oriented Programming), where the Docker image is compared to class and the Docker container to the object. The Docker container performs all the major computing. A
Docker image acts similar to templates for Docker containers.
Listed below are the three methods for building or modifying a Docker image:
1. Pull or download from Docker registry.
2. Sweep your Docker image using Docker file and the related directories.
3. Build by committing the modified container.
Below are the major features of a Docker image:
Portability: The Docker images can easily be pushed or moved into a Docker registry and can also be saved as tar file.
Layered nature: Images are added using layers. This enables reusability of images and disk usability is highly reduced as the parent layers are shared.
Static or Compile-time nature: Though you can create a new Docker image, the contents will remain unchanged.
A Docker repository is an internet based or network based service which holds Docker images. Docker images can either be pushed or pulled, from or to the Docker repository. You can either specify a Docker repository and can also create your own repository. There are two forms of Docker repository namely: private and public repository.
Docker Hub is a clustered resource mechanism while working with components of Docker technology. Docker Hub is a best example for public repository is Docker Hub and it helps you in collaborating with your friends to make most from Docker. There are few services provided by Docker Hub like Docker’s image hosting service for this. Docker Hub can act as both private and public storage media for Docker.
Docker daemon runs on host system. The users cannot interact directly with Docker daemon but only through Docker clients.
Docker Client is the chief user interfacing for Docker and it is in docker binary format. Docker daemon will accept the docker commands from users and establishes to and fro communication with Docker daemon.
Docker Swarm is domestic cluster for Docker. This will allow creation and accessing to a collection of Docker hosts with the help of Docker tools. As Docker Swarm acts as worthful API for Docker, any of Docker tools which are communicating with Docker daemon could use Swarm for transparently scaling different hosts.