docker
At the core of the Docker architecture lies a client-server model, where we have two primary components:
- The Docker daemon
- The Docker client
The Docker client acts as our interface for issuing commands and interacting with the Docker ecosystem, while the Docker Daemon, also known as the Docker server, is responsible for executing those commands and managing containers.
Think of a Docker image as a blueprint or a template for creating containers. A Docker container is an instance of a Docker image. It is a lightweight, isolated, and executable environment that runs applications. While images are immutable and read-only, containers are mutable and can be modified during runtime. However, any modifications made to a container's filesystem are not persisted unless explicitly saved as a new image or stored in a persistent volume.
Installation
To make sure that I have docker engine, docker compose and nginx installed.
Depending on the image you are going to compose you will need nginx or other dependencies.
Another way, see https://www.kali.org/docs/containers/installing-docker-on-kali/