According to Wikepedia the definition of a container is
an object for holding or transporting something.
“the cakes will keep for up to two weeks if kept in an airtight container”
synonyms: receptacle, vessel, holder, repository, canister, drum, box, case
“an airtight container”
However that is not what this post is about. True a container is something for holding something but in the world of IT the term Container has started to be used a lot. But what does it mean?
At a few recent conferences I have attended the speaker has asked the group “Who is using Containers?”
A lot of hands go up so it is clear that Containers are a hot topic in IT.
The description as provided by AWS
Containers are a method of operating system virtualization that allow you to run an application and its dependencies in resource-isolated processes. Containers allow you to easily package an application’s code, configurations, and dependencies into easy to use building blocks that deliver environmental consistency, operational efficiency, developer productivity, and version control. Containers can help ensure that applications deploy quickly, reliably, and consistently regardless of deployment environment. Containers also give you more granular control over resources giving your infrastructure improved efficiency. Running containers in the AWS Cloud allows you to build robust, scalable applications and services by leveraging the benefits of the AWS Cloud such as elasticity, availability, security, and economies of scale. You also pay for only as much resources as you use.
The description from Docker is maybe a little easier to understand
A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment. Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure.
What are Containers? – in simple terms.
A more simplified description is provided by stickyminds.com
A container is a virtual machine that runs on the same operating system as your computer. Instead of copying a new operating system, Docker can reuse large portions of it and “hook into” the task-switching parts, as well as share dependencies across each application’s container:
So it sounds like a container is a very lightweight way of running an application using the minimum of resources.
This Video goes into a lot of detail on what a container is and more importantly why they are so important in the IT world today
Conclusion:
So in simple terms a container is a very lightweight way of running an application with the minimum of resources.
The best way to get your head around this is to install Docker and start to run your own containers.
The next post will go into a Docker Lab and Container Tutorial > to be updated >