Docker Concepts and Terminologies

img/posts/docker-terminology.png
Bind Mount:

A mount point directing access to a specific location on the host file system, allowing you to share files or directories between the host and the container.

Container:

An isolated, lightweight unit of software that packages code, runtime, system tools, libraries, and settings needed to run an application.

Containerd:

An industry-standard container runtime with an emphasis on simplicity, robustness, and portability. Containerd is available as a daemon for Linux and Windows, which can manage the complete container lifecycle of its host system: image transfer and storage, container execution and supervision, low-level storage, and network attachments, etc.

Docker Build Context:

The set of files located in the specified PATH or URL used during the Docker image build process. The build context is processed by the Docker daemon, which can significantly affect the build’s performance, especially if it includes large or unnecessary files.

Docker Client:

The command-line tool that allows the user to interact with the Docker daemon. Through the Docker client, users can issue commands such as docker run, docker build, and more.

Docker Compose:

A tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services.

Docker Compose File:

A YAML file used by Docker Compose to define the services, networks, and volumes for a Docker application. This file simplifies the configuration of the application’s service dependencies and deployment settings.

Docker Container Lifecycle:

Refers to the various stages a container goes through during its existence. These stages include creation, running, stopping, restarting, and deletion. Understanding the lifecycle is crucial for managing containers effectively.

Docker Daemon:

The background service running on the host that manages the building, running, and distribution of Docker containers. The daemon is the process that executes Docker commands issued by the Docker client.

Docker Engine:

The core part of Docker, responsible for creating and running Docker containers. It’s a client-server application with a server run by a long-running daemon process.

Docker Engine API:

An API provided by Docker to program against the Docker Engine. This API is used by the Docker CLI (command-line interface) and can be used by other clients to interact with the Docker service, allowing for automation and integration with existing toolchains.

Docker Entrypoint:

A command or script that is executed when the container starts. The ENTRYPOINT instruction in a Dockerfile configures this behavior. It’s often used to set up an environment or perform initial configuration before the main application starts.

Docker Environment Variables:

Environment variables can be used in Docker to pass configuration values to a container at runtime. These can be set in a Dockerfile or passed dynamically when a container starts, providing a flexible way to manage configuration.

Docker File:

A text document containing all the commands a user could call on the command line to assemble an image.

Docker Health Checks:

A feature that allows you to define commands in your Dockerfile or Docker Compose file to check the health of your application running inside a container. Docker can use this information to manage the state of the container.

Docker Hub:

A cloud-based registry service that allows you to link to code repositories, build your images, store them, and share them with others.

Docker Logs:

Docker maintains logs for each container, providing a way to access and review the standard output and standard error of the processes running inside containers. This is essential for troubleshooting and monitoring the behavior of applications within containers.

Docker Machine:

A tool that lets you install Docker Engine on virtual hosts. It also manages the hosts with commands like start, stop, inspect, and remove. It’s particularly useful for setting up a Docker environment on cloud providers or inside your own data center.

Docker Namespace:

A feature that provides a layer of isolation in Docker containers. Namespaces ensure that each container has its own isolated instance of global system resources, such as process IDs, network, and filesystem mounts, making sure that containers are not able to see or affect each other.

Docker Secrets:

A system for securely storing and managing sensitive data such as passwords and API keys within Docker Swarm. Docker secrets provide a way to share sensitive data with containers running in a swarm without exposing it in stack definitions, source code, or backend storage.

Docker Stack:

A group of interrelated services that share dependencies and can be orchestrated and scaled together. A Docker stack is managed with the Docker Compose tool.

Docker Swarm:

A clustering and scheduling tool for Docker containers. It turns a pool of Docker hosts into a single, virtual Docker host.

Docker Tag:

A tag is a label applied to Docker images, typically used to indicate different versions of the same image. For example, tags are used to distinguish between the latest version, stable versions, or specific version numbers of an image.

Docker Trusted Registry (DTR):

Part of Docker Enterprise Edition, this is a secure, private registry for storing, managing, and securing Docker container images. DTR is an enterprise-grade solution that provides features like image signing, security scanning, and role-based access control.

Docker Volumes Driver:

A plugin that allows you to use different types of storage systems for your Docker volumes, providing an abstraction over how the storage is managed.

Docker Store:

A marketplace for users to distribute and consume containerized applications. It provides a wide range of community and official images that can be used as the basis for your own containers.

Image:

A blueprint for a container, containing all the necessary components like code, runtime, libraries, and environment variables.

Kubernetes:

An open-source system for automating deployment, scaling, and management of containerized applications. Often used in conjunction with Docker.

Layer:

Each instruction in a Dockerfile creates a layer in an image. Layers are used to cache dependencies, making images more efficient, smaller, and faster than traditional virtual machines.

Networking:

Docker’s networking feature allows containers to communicate with each other and with the outside world via different networking modes like bridge, host, and overlay networks.

Orchestration:

The automated configuration, coordination, and management of computer systems and software. In Docker, orchestration is often managed by tools like Kubernetes or Docker Swarm.

Overlay Network:

A network type in Docker that supports multi-host networking. It allows containers running on different Docker hosts to communicate with each other securely.

Registry:

A storage and content delivery system that holds named Docker images, available in different tagged versions.

Service:

In the context of Docker Swarm, a service is the definition of the tasks to execute on the manager or worker nodes. It is the central structure of the swarm system and the primary root of user interaction with the swarm.

Volume:

A mechanism for persisting data generated by and used by Docker containers. Volumes are stored in a part of the host filesystem managed by Docker.


Written By

Raha Farokhi

Nothing haunts you like the choices you don't make!