Docker is an open source software platform which uses the container technology. Docker addresses issues like compatibility issues between your application with other developers OS, OS versions, service libraries and dependencies, and other environment differences so that developing, packaging, and shipping applications can be done without any headaches.
Docker works with your operating system to package, ship, and run software. You can think of Docker as a software logistics provider that will save you time and let you focus on high-value activities. You can use Docker with network applications like web servers, databases, and mail servers and with terminal applications like text editors, compilers, network analysis tools, and scripts; in some cases it’s even used to run GUI applications like web browsers and productivity software.– Docker in Action
What is a container?
Let’s say that you’ve developed an end-to-end application stack containing a web server, a database, an orchestration tool, etc. The application’s successful development, testing, and deployment of your application depends upon the configuration of your system and is dependent of certain libraries, dependencies, and files. You want to replicate your application development environment as much as possible. However, other developers and users of your application will have different environments. So how can you make your application run smoothly across all environments without having to rewrite the server environment?
Containers are completely isolated environments which holds your application and has the necessary libraries, dependencies, and files so that you can easily develop, test and deploy it on any system irrespective of which environment is on the system.
Why not use virtual machines?
Virtual machines can isolate applications and reduce conflicts among software components and competition for hardware resources to a minimum. But virtual machines are bulky—each requires its own OS, so is typically gigabytes in size—and difficult to maintain and upgrade.
Want to join on my learning journey? Feel free to subscribe!