Skip to main content

Day 2 : Docker Session

Topics :

  • Overview Of Container
  • Application Development before Containers
  • Application Development after Containers
  • Application Deployment before Containers
  • Application Deployment after Containers
  • Docker Vs Virtual Machines

Overview Of Container

  1. A container is a lightweight package of software that bundles an application's code, configuration files, libraries, and dependencies.
  2. Easy to move applications: Containers make it easy to move applications between environments, such as development, testing, and production.
  3. Reliable and scalable: Containers are reliable, scalable, and trusted because security can be built into the container pipeline and infrastructure can be defended.
  4. Consistent behavior: Containerized applications can be moved between public, private, and hybrid cloud environments and data centers with consistent behavior and functionality.
  5. Simplifies development: Containers simplify development, testing, and deployment processes.
  6. Reduces infrastructure and software costs: Containers can reduce infrastructure and software costs.

Application Development before Containers

  1. Setting up all the required services locally by installing the Binaries. (Webserver,DB etc)
  2. Installation Differs with different Environments and OS
  3. Running Different Versions of same application in not possible.
  4. High Chance of application not working while migarting to the Different Environments due to the Configuration issue.

Application Development after Containers

  1. Local Setup of required services are simple by downloading the Docker Images
  2. Own Isolated Linux OS layer. with all the required Configuration Packaged.
  3. Docker Pull command will install and start the service with same start command for different OS
  4. Run different versions of same application

Application Deployment before Containers

  1. Developers will share the Artifact (jar,war or ear) with application config files, Environment Variables and other required settings.
  2. Each step is to be repeated in all the servers. (SIT,PP and Prod)
  3. Servers are built with different Spec and Versions will have the Impact on the applications
  4. Eg. Patching of OS, Middleware and Other activities in the Host Layer will affect the Application Funtionality

Application Deployment after Containers

  1. Artifacts comes as Container Image and Pull command will deploy the Application.
  2. No env Setup is required. With the Docker run time can deploy in different environments
  3. Any Change in Host will never impact the Application Funtionality. The Image is bundled with all the required packages to run the application.
  4. Least chances of getting errors during Application Deployment and Startup. Since the same image is deployed and test in the Different Environments

So Far the Advantages of Docker Containers are discussed. We will see how things happening Techincally.

Container Technical Explaination

A contaner is composed of multiple layers stacked on top of each other. Each layer represents a specific modification to the file system (inside the container), such as adding a new file or modifying an existing one. Once a layer is created, it becomes immutable, meaning it can't be changed.

Docker Vs Virtual Machines

  1. Docker and Virtual Machines are both Virtualization Tools.
  2. What parts of Operating system which Docker and VM Virtualize.

Whats is Operating System

  1. Docker Virualizes Applications Layer
  2. VM Virualizes Application and Complete OS Layer

How Applications Deployed in VM’s

In SMDS, Onprem Components are deployed in Hypervisor Based Virtualization.

Docker will use the Host OS to run the Containers. This will give the below Advantages.

  1. Light Weight Docker Images ( With One Layer)
  2. Speed of Stop/Start the containers is fast due to the usage of Host kernal.
  3. Running for On-Demand, Resources utilized only if the Container is running
Was this page helpful?