# Capability-Docker/Docker Compose

## Docker

Allows you to develop,ship, and run your applications in containers.

Containers are lightweight, portable, and efficient, allowing developers to package an application with all of its dependencies and run it consistently across different environments. Here’s a brief overview of Docker and its core components:\


**Docker Engine:** The core of the Docker platform, Docker Engine is a client-server application with three major components:\
**Server (Docker Daemon):** Responsible for creating, managing, and monitoring containers.\
REST API: Provides a way to interact with the daemon and instruct it what to do.\
**Command Line Interface (CLI):** A command-line tool that uses the Docker REST API to interact with the Docker daemon.\
**Docker Images:** Immutable files that contain the source code, libraries, dependencies, tools, and other files needed to run applications. Images are the basis for creating containers.\
**Docker Containers:** Lightweight and portable encapsulations of an environment in which applications run. Containers are created from Docker images and run on the Docker Engine.\
**Docker Hub:** A cloud-based repository where Docker users can create, test, store, and distribute Docker containers and images.

## Docker Compose

You can define and run multi-container Docker applications. With Docker Compose, you can use a YAML file to configure your application's services, networks, and volumes. Then, with a single command, you can create and start all the services from your configuration.
