Please read the part 1 and part 2 of MS Azure before reading this.
https://dotnetbyudayrajakonda.blogspot.com/2023/11/introduction-to-azure-dev-ops.html
https://dotnetbyudayrajakonda.blogspot.com/2023/11/ms-azure-part-2.html
Docker
Prerequisites to learn Dockers
The prerequisite is that the readers should be familiar with the basic concepts of Windows and the various programs that are already available on the Windows operating system. In addition, it would help if the readers have some exposure to Linux.
Docker is a container management service. The keywords of Docker are develop, ship and run anywhere. The whole idea of Docker is for developers to easily develop applications, ship them into containers which can then be deployed anywhere.
Features of Docker
With containers, it becomes easier for teams across different units, such as development, QA and Operations to work seamlessly across applications.You can deploy Docker containers anywhere, on any physical and virtual machines and even on the cloud.Since Docker containers are pretty lightweight, they are very easily scalable. Now, what we will be doing is we will keep all the software's in one container
The above images says that we have three containers one with 7.0 version and the other with 6.0 version and other assume as 5.0 version.
We also need to have Docker Engine and operating system need to be installed inside that server.
Virtualization vs Container
Assume that i have created Three VMS. in that i have the below memory
1 VM (6 GB )--> 4 GB of memory I am using, and remaining 2 GB I am not using.
2 VM (4 GB)--->3 GB of memory I am using, and remaining 1 GB I am not using.
3 VM(6 GB) ----2 GB of memory I am using, and remaining 4 GB I am not using.
In virtualization / Docker
Docker is an application which is used to create container on top of physical server or Virtual Machine.
We can also install container in Cloud Server also.
Docker Architecture
Before learning the Docker architecture, first, you should know about the Docker Daemon.
It manages Docker objects such as images, containers, networks, and volumes. A daemon can also communicate with other daemons to manage Docker services.
Docker Architecture
Docker follows Client-Server architecture, which includes the three main components that are Docker Client, Docker Host, and Docker Registry.
1. Docker Client
Docker client uses commands and REST APIs to communicate with the Docker Daemon (Server). When a client runs any docker command on the docker client terminal, the client terminal sends these docker commands to the Docker daemon. Docker daemon receives these commands from the docker client in the form of command and REST API's request.
Docker Client uses Command Line Interface (CLI) to run the following commands -
docker build
docker pull
docker run
2. Docker Host
Docker Host is used to provide an environment to execute and run applications. It contains the docker daemon, images, containers, networks, and storage.
Docker Registry
Docker Registry manages and stores the Docker images.
There are two types of registries in the Docker -
Pubic Registry - Public Registry is also called as Docker hub.
Private Registry - It is used to share images within the
A Docker registry stores Docker images. Docker Hub is a public registry that anyone can use, and Docker looks for images on Docker Hub by default. You can even run your own private registry.
Docker Objects
Docker Images
Docker images are the read-only binary templates used to create Docker Containers. It uses a private container registry to share container images within the enterprise and also uses public container registry to share container images within the whole world
Docker Containers
Containers are the structural units of Docker, which is used to hold the entire package that is needed to run the application. The advantage of containers is that it requires very less resources.
In other words, we can say that the image is a template, and the container is a copy of that template.
Docker Networking
Using Docker Networking, an isolated package can be communicated. Docker contains the following network drivers -
- Bridge - Bridge is a default network driver for the container. It is used when multiple docker communicates with the same docker host.
- Host - It is used when we don't need for network isolation between the container and the host.
- None - It disables all the networking.
- Overlay - Overlay offers Swarm services to communicate with each other. It enables containers to run on the different docker host.
- Macvlan - Macvlan is used when we want to assign MAC addresses to the containers.
Docker Storage
Docker Storage is used to store data on the container. Docker offers the following options for the Storage -
- Data Volume - Data Volume provides the ability to create persistence storage. It also allows us to name volumes, list volumes, and containers associates with the volumes.
- Directory Mounts - It is one of the best options for docker storage. It mounts a host's directory into a container.
- Storage Plugins - It provides an ability to connect to external storage platforms.