Topic D01- Container Technology
What are Containers?
- It can be defined as a standard package of software that bundles the code and all its dependencies so that the application is able to run quickly and reliably from one computing environment to another.
- It provides an infrastructure that allows application deployment to be packaged lightly and immutably.
- Container Image-The code, runtime, system tools, system libraries, and settings are packaged together as a container image.
Linux Containers
- Is a set of one or more processes that are isolated from the rest of the system.
- All the files necessary to run them are provided from a distinct image.
- Linux containers are portable and consistent as they move from development to testing, and then finally to production.
- This makes it better to use than most development pipelines.
- Linux containers help you alleviate issues and iterate faster—across multiple environments.
Why should you use Linux Containers?
- Imagine you’re developing an application. You do your work on a laptop and your environment has a specific configuration. Other developers may have slightly different configurations. The application you’re developing relies on that configuration and is dependent on specific libraries, dependencies, and files.
- Meanwhile, your business has development and production environments that are standardized with configurations and sets of supporting files. You want to emulate those environments as much as possible locally but without all the overhead of recreating the server environments.
- So, how do you make your app work across these environments, pass quality assurance, and get your app deployed without massive headaches, rewriting, and break-fixing?
- The answer to your problem is Containers.
Container VS Virtualization
- They do have distinct characteristics but most of their functionality is similar like both focus on improving IT efficiency, providing application portability, and enhancing DevOps and the software development lifecycle.
- Virtualization is a process whereby software is used to create an abstraction layer over computer hardware that allows the hardware elements of a single computer to be divided into multiple virtual computers. The software used is called hypervisor.
- Virtual machines are considered the foundation of the first generation of cloud computing.
- Containers are a lighter-weight, more agile way of handling virtualization. Containers don't use a hypervisor, and thus are much faster.
- Instead of virtualizing the underlying hardware, containers virtualize the operating system (typically Linux or Windows) so each individual container contains only the application and its libraries and dependencies. Containers are small, fast, and portable because, unlike a virtual machine, containers do not need to include a guest OS in every and can, instead, simply leverage the features and resources of the host OS.
Benefits of Using Containers
- Containers are mainly used to ensure that applications are decoupled from the environment where they will run.
- Containerized applications can be deployed faster and more efficiently in almost any environment.
- Containers often include software and library dependencies, resulting in a consistency benefit. With this type of isolation, we can be sure that the final application will run consistently, regardless of the environment in which it runs.
- Here are some of the top benefits of containers for business.
- Agility and productivity
- Consistency
- Scalability and optimization of the infrastructure
- Resilience
- Portability
Docker
- Docker is an open-source software designed to facilitate and simplify application development.
- It is a set of platform-as-a-service products that create isolated virtualized environments for building, deploying, and testing applications.
- Although the software is relatively simple to master, there are some Docker-specific terms that new users may find confusing.
- Docker files, images, containers, volumes, and other terminology will need to be mastered and should become second nature over time.
- It is a good idea to try to comprehend the basic roles of these elements. It will speed up learning on how to work with them.
Some Terminologies
- Docker file: a text document that contains instructions for building a Docker image.
- Docker Hub: A cloud-based registry service for Docker images. It allows users to store, share, and deploy Docker images.
- Docker Container: is a runnable instance of Docker image.
- Docker Volume: is a directory or file that is shared between a Docker container and the host machines.
Comments
Post a Comment