Docker is an open-source project that automates the deployment of applications within software containers , providing an additional layer of abstraction and automation for application virtualization across multiple operating systems.
Docker uses Linux kernel resource isolation features, such as cgroups and namespaces, to allow independent "containers".
In this way, Docker provides that these containers run within a single Linux instance, avoiding the overhead of starting and maintaining virtual machines.
Linux kernel support for namespaces isolates an application's view of its operating environment.
Including process trees, network, user IDs, and mounted file systems, while kernel cgroups provide resource isolation, including CPU, memory, block I / O, and network.
New version of Docker 18.09
A version of the Docker 18.09 isolated Linux container management toolkit is presented, which provides a high-level API for manipulating containers at the individual application isolation level.
Docker allows you to launch arbitrary processes in isolation mode and then transfer and clone containers created for these processes to other servers, taking all the work out of creating, maintaining, and maintaining the containers.
Starting with Docker 18.09, the release support time has benefited as developers have increased it from 4 to 7 months due to the modernization of the Docker Community Edition development cycle.
Another highlight of this new Docker release is that the core runtime for container management has been updated to containererd 1.2.
This stabilized the use of the gRPC container management mechanism and ensured compatibility with the Kubernetes 1.12 platform and improved support for universal images for different architectures (multi-arch).
On the other hand, Docker 18.09 expands the capabilities of a new build backend (providing the functionality of the "docker build" command). This allows for automatic garbage collection operations that support nested job releases and do not require root user authorization during the operation.
BuildKit improvements

Docker 18.09 also includes the BuildKit deferral option. This is a new build architecture that improves performance, storage management, and extensibility, while also adding some important new features.
Performance improvements: BuildKit includes a redesigned concurrency and caching model that makes it much faster, more accurate, and more portable.
With this change and alignment of the architecture, Docker developers now also allow an upgrade of the engine from the Community version to the Enterprise engine with a simple license activation.
For current users of the Docker Community version, this move means unlocking many enterprise security features and gaining access to Docker's enterprise-class support and extended maintenance policies.
Compared to the previous version
The code was modified to organize the parallel execution of the job and the caching model was changed, which made it possible to significantly speed up assembly.
For example, when testing the Dockerfile project Moby set speed increased from 2 to 9,5 times due to the simultaneous execution of multiple mounting stages, ignoring unused steps and incremental data files between sets in view context.
The ability to embed secrets in the Dockerfile and transfer them securely during the build process was added , without storing them in the resulting images and without installing them in the build cache.
The ability to forward ssh ssh-agent sockets is implemented, for example, to connect to private repositories using an existing connection through the ssh-agent.
The assembly cache can now be managed separately from the images.
Added new command "docker builder prune" to clear cache and the ability to define cleanup rules and more.
If you want to learn more about it, you can visit the following link.