Containers


Intro

My notes on containers, such as Docker.


Documentation


Tips And Notes

 

  • Another way to package and deliver applications.

  • Keep applications isolated, which makes the portable to different environments (same OS but different versions of the OS).

  • Not the same as a VM. Containers concentrate on application and isolation.

  • Worry about scaling and sizing of container from the beginning.

  • Worry about data persistent.  Where would you keep the container's data?  Containers are short-term (ephemeral).


Benefits Of Containers

  • Agility

  • Scalability/high availability,

  • Cost optimization

  • Portability (can be moved between on-prem or any cloud provider platform).

    • Container images used for local development are identical to those that are run in productio

  • Allows building of Immutable Infrastructure. 

  • Once an application is in production, it cannot be changed or modified

  •  Updates require proper change controls and code review. 

  • Enables faster mean time to revenue.

  • Better distributed computing capabilities.  Application can be divided into many different domains and each scaled separately

  • Lightweight when compared to VMs.

    • Can boot faster

    • Smaller footprint size.

    • Ease of patching.

    • Developer agility.

    • Containers are lightweight, which makes building and deploying them faster than with VM infrastructure


Disadvantages of Containers

  • Higher cost (security, tools, skills, time)

  • More complex, harder to debug.  More DevOps required

  • Lack of support




Use Cases

Containers can be used in

  • CI/CD automation, 

  • autoscaling microservices 

  • containers as a service,

  • hybrid cloud architectures.




Layers

  • Containers use a layered approach.

  • Use a union file system which allows files to remain independent from other containers

  • Operating systems, applications, and libraries all contained in layers. 

  • Layers are cached for fast building.

  • Share OS




Container Stack Architecture




Container EcoSystem





 


Docker

  • Docker is the largest player. They're a standard and a company. 


Rocket

 

Rocket from CoreOS was built in response to security concerns with Docker because they were providing root access to the demon, which created risk.