A e book printed in 1981, referred to as Nailing Jelly to a Tree, describes software program as “nebulous and troublesome to get a agency grip on.” That was true in 1981, and it’s no much less true 4 a long time later. Software program, whether or not it’s an software you obtain or one that you simply constructed your self, stays laborious to deploy, laborious to handle, and laborious to run.
Docker containers, and the OCI customary for containers and their runtimes, present a option to get a grip on software program. You need to use containers to package deal an software in such a means that its deployment and runtime points—the right way to expose it on a community, the right way to handle its use of storage and reminiscence and I/O, the right way to management entry permissions—are dealt with exterior of the applying itself, and in a means that’s constant throughout all “containerized” apps. You’ll be able to run your container on any Linux- or Home windows-compatible host that has a container runtime put in.
Containers supply many different advantages past encapsulation, isolation, portability, and management. Containers are small in comparison with digital machines, measurable in megabytes versus gigabytes. They begin immediately. They’ve their very own built-in mechanisms for versioning and part reuse. They are often simply shared by way of directories like the general public Docker Hub or a non-public repository.