Zoomtutorials
  • Tutorials
    • DevOps
      • Terraform
      • Git
      • GitHub
      • Jenkins
      • Docker
      • Kubernetes
      • Ansible
      • Python
      • Azure DevOps
      • AWS DevOps
      • Monitoring
    • Cloud
      • AWS
      • Azure
      • GCP
      • Oracle Cloud
      • Alibaba Cloud
      • IBM Cloud
      • DigitalOcean
      • Linode
    • Microsoft Dynamics ERP
      • Dynamics 365
        • D365 FnO
        • D365 BC
      • Dynamics AX
      • Dynamics NAV
      • Dynamics GP
      • Dynamics CRM
    • Azure DevOps
      • Azure Boards
      • Azure Repos
      • Azure Pipelines
      • Azure Test Plans
      • Azure Artifacts
      • Extensions Marketplace
    • AWS DevOps
      • CodeStar
      • CodeCommit
      • CodeBuild
      • CodeDeploy
      • CodePipeline
      • CodeArtifact
    • Web Server
      • IIS
      • Apache
      • NGINX
      • Tomcat
      • NodeJS
    • Microsoft
      • Office 365
      • Microsoft 365
      • SharePoint
      • MS Dynamics ERP
  • DevOps
    • DevOps Tools
      • Terraform
      • Git
      • GitHub
      • Jenkins
      • Docker
      • Kubernetes
      • Ansible
      • Python
      • Monitoring
    • Azure DevOps
      • Azure Boards
      • Azure Repos
      • Azure Pipelines
      • Azure Test Plans
      • Azure Artifacts
      • Extensions Marketplace
    • AWS DevOps
      • CodeStar
      • CodeCommit
      • CodeBuild
      • CodeDeploy
      • CodePipeline
      • CodeArtifact
  • Cloud
    • Cloud Hosting
      • AWS
      • Azure
      • GCP
      • Oracle Cloud
      • Alibaba Cloud
      • IBM Cloud
      • DigitalOcean
      • Linode
  • Programming
    • Application
      • Magento 2
      • Magento
      • WordPress
      • PHP
      • .Net
      • .Net Core
      • NodeJS
      • JAVA
    • Database
      • Microsoft SQL Server
      • MySQL
      • MariaDB
      • Amazon Aurora
      • SQL Proxy
    • Web Server
      • IIS
      • Apache
      • NGINX
      • Tomcat
      • NodeJS
    • Microsoft Dynamics ERP
      • Dynamics 365
        • D365 FnO
        • D365 BC
      • Dynamics AX
      • Dynamics NAV
      • Dynamics GP
      • Dynamics CRM
  • HowTos
    • Linux OS
      • RHEL
      • Ubuntu
      • CentOS
      • Fedora
      • Debian
    • Linux Tips
      • Linux Commands
      • Linux Tricks
      • Linux Cheatsheet
    • Windows OS
      • Server 2019
      • Server 2016
      • Server 2012
      • Server 2008
      • Windows 11
      • Windows 10
      • Windows 8
      • Windows 7
    • Windows Tips
      • Windows Commands
      • Windows Shortcuts
    • Microsoft
      • Office 365
      • Microsoft 365
      • SharePoint
      • MS Dynamics ERP
  • Tools
    • Monitoring
      • New Relic
      • ELK Stack
      • Loggly
      • DataDog
      • Papertrial
      • Graylog
      • UptimeRobot
    • Security
      • Firewall
      • Internet Security
      • Antivirus
    • Backup
      • SQL Backup
      • Iperius Backup
  • Online Training
  • Services
  • Community
  • News
  • Contact Us
Facebook Twitter Instagram
Zoomtutorials
  • Tutorials
    • DevOps
      • Terraform
      • Git
      • GitHub
      • Jenkins
      • Docker
      • Kubernetes
      • Ansible
      • Python
      • Azure DevOps
      • AWS DevOps
      • Monitoring
    • Cloud
      • AWS
      • Azure
      • GCP
      • Oracle Cloud
      • Alibaba Cloud
      • IBM Cloud
      • DigitalOcean
      • Linode
    • Microsoft Dynamics ERP
      • Dynamics 365
        • D365 FnO
        • D365 BC
      • Dynamics AX
      • Dynamics NAV
      • Dynamics GP
      • Dynamics CRM
    • Azure DevOps
      • Azure Boards
      • Azure Repos
      • Azure Pipelines
      • Azure Test Plans
      • Azure Artifacts
      • Extensions Marketplace
    • AWS DevOps
      • CodeStar
      • CodeCommit
      • CodeBuild
      • CodeDeploy
      • CodePipeline
      • CodeArtifact
    • Web Server
      • IIS
      • Apache
      • NGINX
      • Tomcat
      • NodeJS
    • Microsoft
      • Office 365
      • Microsoft 365
      • SharePoint
      • MS Dynamics ERP
  • DevOps
    • DevOps Tools
      • Terraform
      • Git
      • GitHub
      • Jenkins
      • Docker
      • Kubernetes
      • Ansible
      • Python
      • Monitoring
    • Azure DevOps
      • Azure Boards
      • Azure Repos
      • Azure Pipelines
      • Azure Test Plans
      • Azure Artifacts
      • Extensions Marketplace
    • AWS DevOps
      • CodeStar
      • CodeCommit
      • CodeBuild
      • CodeDeploy
      • CodePipeline
      • CodeArtifact
  • Cloud
    • Cloud Hosting
      • AWS
      • Azure
      • GCP
      • Oracle Cloud
      • Alibaba Cloud
      • IBM Cloud
      • DigitalOcean
      • Linode
  • Programming
    • Application
      • Magento 2
      • Magento
      • WordPress
      • PHP
      • .Net
      • .Net Core
      • NodeJS
      • JAVA
    • Database
      • Microsoft SQL Server
      • MySQL
      • MariaDB
      • Amazon Aurora
      • SQL Proxy
    • Web Server
      • IIS
      • Apache
      • NGINX
      • Tomcat
      • NodeJS
    • Microsoft Dynamics ERP
      • Dynamics 365
        • D365 FnO
        • D365 BC
      • Dynamics AX
      • Dynamics NAV
      • Dynamics GP
      • Dynamics CRM
  • HowTos
    • Linux OS
      • RHEL
      • Ubuntu
      • CentOS
      • Fedora
      • Debian
    • Linux Tips
      • Linux Commands
      • Linux Tricks
      • Linux Cheatsheet
    • Windows OS
      • Server 2019
      • Server 2016
      • Server 2012
      • Server 2008
      • Windows 11
      • Windows 10
      • Windows 8
      • Windows 7
    • Windows Tips
      • Windows Commands
      • Windows Shortcuts
    • Microsoft
      • Office 365
      • Microsoft 365
      • SharePoint
      • MS Dynamics ERP
  • Tools
    • Monitoring
      • New Relic
      • ELK Stack
      • Loggly
      • DataDog
      • Papertrial
      • Graylog
      • UptimeRobot
    • Security
      • Firewall
      • Internet Security
      • Antivirus
    • Backup
      • SQL Backup
      • Iperius Backup
  • Online Training
  • Services
  • Community
  • News
  • Contact Us
Facebook Twitter Instagram YouTube LinkedIn
Zoomtutorials
DevOps

Day 1-Introduction to Docker and Containers

ZT AdminBy ZT AdminMarch 17, 2023No Comments6 Mins Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Share
Facebook Twitter LinkedIn Pinterest Email

Table of Contents

  • Introduction to Containers
    • Learning Objectives
  • Container
    • Why Use Containers?
    • Characteristics:
    • Benefits:
    • Challenges:
    • Container Vendors:
  • Docker
    • Features:
    • Docker Add-ons:
    • Benefits:
    • Challenges:
  • Summary:

Introduction to Containers

Learning Objectives

In this section, we will be able to:

  • We will try to identify the traditional computing issues for software development,
  • Define a container and describe its characteristics,
  • List container benefits and challenges, and popular container vendors.
  • Define what Docker is,
  • Describe the Docker process and underlying technology,
  • List the benefits of Docker containers,
  • And identify the challenges of Docker containers.

Cloud-native is the newest application development approach for building scalable, dynamic, hybrid cloud-friendly software. Container technology is a powerful part of that approach.

Let’s check out the analogy of a shipping container.
The modern shipping industry standardized a set of container sizes, so no matter what item is shipped, the container size remains the same.

Standardization significantly improves shipping efficiency. Logistics staff select container transport options such as ships, planes, trains, and trucks, based on the container’s size and the client’s delivery needs. Digital container technology is similar.

Containers solve the problem of making software portable so that applications can run on multiple platforms.

Container

A container, powered by the containerization engine, is a standard unit of software that encapsulates the application code, runtime, system tools, system libraries, and settings necessary for programmers to build, ship, and run applications efficiently.

Operations and underlying infrastructure issues are no longer blockers. You can quickly move applications from your laptop to a testing environment, from a staging environment to a production environment, from a physical machine to a virtual machine, or a private cloud or public cloud, and always know that your application will work correctly.
A container can be small, just tens of megabytes, and developers can almost instantly start containerized
applications. With these capabilities, containers serve as the foundation for today’s development
and deployment solutions standards.

Why Use Containers?

Above given table is the list of the development and deployment challenges organizations encountered with traditional computing environments. In traditional environments, developers can’t isolate the app and allocate or designate specific storage and memory resources for apps on physical servers. Servers are often underutilized or overutilized, leading to poor utilization and a poor return on investment.

Traditional deployments require comprehensive provisioning resources and expensive maintenance costs. The limits of physical servers can constrain application performance during peak workloads. Applications are not portable across multiple environments and operating systems. Implementing hardware for resiliency is often time-consuming, complex and expensive. Traditional on premises IT environments have limited scalability
Finally, automation is challenging when distributing software to multiple platforms and resources using traditional environments.

Containers enable organizations to overcome these challenges.

Characteristics:

  • Container engines virtualize the operating system and are responsible for running containers.
  • Platform-independent containers are lightweight, fast, isolated, portable, and secure and often
    require less memory space.
  • Binaries, libraries, and other entities within the container enable apps to run, and one
    machine can host multiple containers.
  • Containers help programmers quickly deploy code into applications, because:
    • Containers are platform-independent and can run on the cloud, desktop, and on-premises.
    • Containers being operating system-independent, run on Windows, Linux, or Mac OS.
    • Containers are also programming language and IDE independent—whether you are running Python, Node, Java, or other languages.

Benefits:

Containers enable organizations to:

  • Quickly create applications using automation.
  • Lower deployment time and costs.
  • Improve resource utilization, including CPU and memory.
  • Port across different environments,
  • And support next-gen applications, including microservices.

Challenges:

Using containerization is not without its challenges.

  • Server security can become an issue if its operating system is affected.
  • Developers can become overwhelmed when managing thousands of containers.
  • Converting monolithic legacy applications can be a complex process, and
  • Developers can experience difficulty right-sizing containers for specific scenarios.

Container Vendors:

Let’s learn about some of the more popular container vendors.

  • Docker: Docker is a robust platform and the most popular container platform today.
  • Podman: Podman is a daemon-less container engine that is more secure than Docker.
  • LXC: Developers often prefer LXC for data-intensive applications and operations.
  • Vagrant: Vagrant offers the highest levels of isolation on the running physical machine.

Docker

Available since 2013, Docker is an open platform or engine where programmers can develop, ship, and run applications as containers. Docker became popular with developers because of its simple architecture, massive scalability, and easy portability on multiple platforms, environments, and locations.

Features:

  • Docker has a simple architecture, and is highly scalable and easily portable on multiple platforms, environments, and locations.
  • Docker isolates applications from infrastructure, including the hardware, the operating system, and the container runtime.
  • Docker is written in the Go programming language
  • Docker uses Linux kernel features to deliver its functionality.
  • Docker also uses namespaces to provide an isolated workspace called the container.
  • And Docker creates a set of namespaces for every container and each aspect runs in a separate namespace with access limited to that namespace.

Docker Add-ons:

Docker methodology has inspired additional innovations, including:

Complementary tools such as Docker CLI, Docker Compose, and Prometheus, and various plugins, including storage plugins; orchestration technologies using Docker Swarm or Kubernetes; and
development methodologies using microservices and serverless.

Benefits:

Docker offers the following benefits:

  • Docker’s consistent and isolated environments result in stable application deployments.
  • Deployments occur in seconds. Because Docker images are small and reusable, they significantly speed up the development process.
  • And, Docker automation capabilities help eliminate errors, simplifying the maintenance cycle.
  • Docker supports Agile and CI/CD DevOps practices.
  • Docker’s easy versioning speeds up testing, rollbacks, and redeployments.
  • Docker helps segment applications for easy refresh, cleanup, and repair.
  • Developers collaborate to resolve issues faster and scale containers when needed.
  • And, Docker images are platform-independent, so they are highly portable.

Challenges:

Docker is not a good fit for applications with these qualities:

  • Require high performance or security,
  • Are based on Monolith architecture,
  • Use rich GUI features or perform standard desktop or limited functions.

Summary:

In this section, we learned that:

  • Organizations are moving to containers to overcome challenges around isolation, utilization, provisioning, performance, and more.
  • A container is a standard unit of software that encapsulates everything needed to build,
    ship, and run applications.
  • Containers are operating system, programming language, and platform-independent.
  • They lower deployment time and costs, improve utilization, automate processes, and support
    next-gen applications (microservices).
  • Developers may find that management, legacy project migration, and right-sizing are significant
    challenges.
  • And finally, major container vendors include Docker, Podman, LXC, and Vagrant.
  • Docker is an open platform for developing, shipping, and running applications as containers.
  • Docker speeds up the deployment process across multiple environments.
  • Docker uses namespaces technology to provide an isolated workspace called the “containers”.
  •  Creates a set of namespaces for every container and each aspect
  • Runs in a separate namespace with access limited to that namespace.
  • Docker supports Agile and CI/CD DevOps practices,
  • And lastly, Docker containers are not a good fit for applications based on monolithic architecture or applications that require high performance or security.

 

 

containers docker
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
ZT Admin
  • Website

Choudhury is the founder and chief editor of ZoomTutorials Blog, a leading tutorials and technology blogging site specializing in DevOps, SysAdmin and Cloud Technologies to help IT professionals in their day to day work. He is a Senior Cloud and DevOps Solutions Engineer at a leading eCommerce development Company and has more than 10+ years of Cloud, DevOps and SysAdmin experience working with Fortune 500 companies to solve their most important IT backbones. He lives in Hyderabad with his wife and a son.

Related Posts

Day 8-Using Kubectl

March 22, 2023

Day 7-Kubernetes Objects

March 22, 2023

Day 6-Kubernetes Architecture

March 18, 2023
0 0 votes
Article Rating
Subscribe
Notify of
guest
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments

Buy Me a Coffee Plz...

Get our latest tutorials
Recent Posts
  • Day 8-Using Kubectl
  • Day 7-Kubernetes Objects
  • Day 6-Kubernetes Architecture
  • Day 5-What is Container Orchestration
  • Day 4-Docker Architecture
  • Day 3-Docker Objects
  • Day 2-How to Create Docker Container Images with Dockerfile
  • Day 1-Introduction to Docker and Containers
  • Docker and Kubernetes in 15 Days
  • Day 10-Linux File Operations
March 2023
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  
« Feb    
Archives