Docker is a client/server application composed of the Docker CLI client and Docker daemon server
- Docker Daemon listens for Docker API requests and manages Docker objects such as images
- Docker Client sends user commands to the Docker Daemon which executes the commands
- Docker Registries stores Docker images
- Docker Image is a read-only template with instructions for creating a Docker container
- Docker Container is a runable instance of the image
Properties
- (Flexible): All complex applications can be containerized.
- (Lightweight): Containers utilize and share the host kernel.
- (Interchangeable): Updates and upgrades can be deployed instantly.
- (Portable): Can be built locally, deployed to cloud and virtualization, and run anywhere.
- (Scalable): Container replicas can be increased and deployed automatically.
- (Stackable): Vertical or horizontal design of services is very easy.
Alpine Linux is lightweight and secure.
An image is an executable package that includes everything needed to run an application, including code, runtime, libraries, environment variables, and configuration files.
A container is a runtime instance of an image, and when an image runs as a container, it is loaded into memory.
This concept of images is a very important concept in container configuration. Docker images can be logically divided into base images, which are called basic images, and images that include the applications and libraries you need, though the boundaries of this division are somewhat ambiguous.
Containers operate by sharing the same host system kernel among multiple containers.
In contrast, other virtualization methods work by having a hypervisor that owns control over host resources.
Docker Components
