The software container pattern

A Software Container provides an execution environment for applications sharing a host operating system, binaries, and libraries with other containers with strong isolation between them. Software containers although not new, have become very important to support convenient, secure, and low overhead applications. Containers facilitate application deployment and distribution across computing environments. We present a pattern for a Software Containers which describes advantages and liabilities of the container in addition to examples of existing solutions. Containers have made a significant difference in supporting agile development frameworks like DevOps.