What is Docker?
I stumbled across Docker a while ago and the concept just intrigued me. The ability to create an application that only ships with the parts it needs. Windows and its applications have often been criticised for their size and bloated overhead on the underlying hardware. This bloat also has security consequences in addition. Imagine, if Windows stopped shipping Windows OS’s without SMB v1 protocol enabled rather than just leaving it to additionally bloat the OS and leave it vulnerable to Petcha and WannaCry.
Docker allows for developers to be more agile and responsive to these modern needs. This is achieved by Dockers smarter architecture to software deployment. Docker manages the following:
- These are the base files for an application to run. Having this base image makes deployment of multiple applications and services quick, manageable and repeatable. For example if you needed multiple web servers you could have a single base image with the entire LAMP (Linux, Apache, MySQL, and PHP/Python/Perl) stack ready to run.
- Containers are the individual instances of the base image. For example I need to run two separate LAMP stacks with individual content on each. You could rapidly deploy two containers that utilise the same base image.
- Docker has the ability to manage the network resources for all your containers. This can help dynamically ensure ports are open and the applications are running.
- Docker will provision storage pools and manage this process for the containers that need resource. I would advise reading about persistent and non persistent storage when looking into Docker deployments.
Docker ultimately improves all aspects of application deployment, management, and maintenance. You get the very best efficiencies out of the underlying hardware and is a really cool advancement in tech. Docker is the go to system for ‘Micro Services’ but in my opinion they have many uses. From a ‘Micro Service’ perspective, lets say you need to run a mini survey for your company. You could simply spin up a container, collect the data, analyse it then delete it in a very rapid and efficient manner. This is a great way of achieving a businesses needs rapidly but also remove issues around long term retention of data especially with GDPR and other regulations coming on tap.