Basic concepts about Docker
This article aims to describe some basic ideas about how Docker works. The information was taken from Docker Docs.
What are the reasons for using Docker?
- Flexible: Even the most complex applications can be containerized.
- Lightweight: Containers leverage and share the host kernel.
- Interchangeable: You can deploy updates and upgrades on-the-fly.
- Portable: You can build locally, deploy to the cloud, and run anywhere.
- Scalable: You can increase and automatically distribute container replicas.
- Stackable: You can stack services vertically and on-the-fly.
Images and containers
A container is launched by running an image. An image is an executable package that includes everything needed to run an application - the code, a runtime, libraries, environment variables, and configuration files.
A container is a runtime instance of an image - what the image becomes in memory when executed (that is, an image with state, or a user process). Importantly images can be layered and are read only from the base up. Changes made inside a container are effectively copied over the read only version in the image. This process is called 'copy on write' and is what makes Docker so powerful.
Containers and virtual machines
A container runs natively on Linux and shares the kernel of the host machine with other containers. It runs a discrete process, taking no more memory than any other executable, making it lightweight.
By contrast, a virtual machine (VM) runs a full-blown “guest” operating system with virtual access to host resources through a hypervisor. In general, VMs provide an environment with more resources than most applications need.
Thanks for visiting.