The image below is an older way to doing things. The image is pretty much self explanatory. Setting up a full stack manually is pretty complex plus you've to deal with compatibility issues as the things changes. The solution is using containerized approach via Docker. Imaging a situation where you've to enter all the commands manually to setup this environment plus keep a track of changes. Isn't it too much?
Below is an image of Dockerized approach. Each component (App) is inside a standalone container fulfilling all it's requirement (Libraries and Dependencies) completely isolated from other app containers.

Setting up the container environment is hard and complex as they are very low level. Here, Docker offers a high level tool with powerful functions and making it easy for end user to create a container. Solves - Compatibility issue, Easy to use
So the question is what is a container? Containers are completely isolated environment. Think of them as a Virtual Machine except they all share same OS kernel.Key thing to remember here is Docker is not meant to run different OS on top of same hardware like Hypervisor in VM. Docker only cares about the underlying Kernel. In case of Linux, it dosen't matter what distribution (RHEL, Ubuntu, Suse etc) you are running - Docker only care about the Linux kernel. |
Container vs VMs
As you can see below in the image. Docker can manage container with Library and Dependencies alone while in case of Hypervisor each virtual machine has it's own Operating System inside it. This is an overhead and due to multiple OS and Kernels it's not efficient and have higher utilization. Consumes higher disk spaces as compared to docker container which also results in quicker boot times for dockerized environment.
With Hypervisor - Higher Utilization of resources, Consumes more space and takes longer to boot up.
As you can see below in the image. Docker can manage container with Library and Dependencies alone while in case of Hypervisor each virtual machine has it's own Operating System inside it. This is an overhead and due to multiple OS and Kernels it's not efficient and have higher utilization. Consumes higher disk spaces as compared to docker container which also results in quicker boot times for dockerized environment.
With Hypervisor - Higher Utilization of resources, Consumes more space and takes longer to boot up.
What is the difference between Docker Image and Docker Container?
Well Docker Image is a package/template/plan to create one or more container and containers are running instances of the images. Lot of products are already dockerized but if you cannot find one for your app - you can create your own image too.
Well Docker Image is a package/template/plan to create one or more container and containers are running instances of the images. Lot of products are already dockerized but if you cannot find one for your app - you can create your own image too.
What's next?
Install Community Edition and create an account on docker hub.
Docker Hub: https://hub.docker.com/
Install Community Edition and create an account on docker hub.
Docker Hub: https://hub.docker.com/
Docker Installation
Docker installation is pretty straight forward and well documented. Please use the link below to access installation documentation:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
Docker installation is pretty straight forward and well documented. Please use the link below to access installation documentation:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
Docker Commands
Docker & Forensics
While searching across docker hub, I stumbled upon a working image of SANS SIFT.
Here is the link: https://hub.docker.com/r/gourav5660/sans_sift_forensics
Here is the link: https://hub.docker.com/r/gourav5660/sans_sift_forensics