 a few in our Glimpse in Guruvara series. Today we are going to talk about the concept of containerization and we would be looking at a glimpse of Docker. This is brought to you by Five Elements Learning and my name is Pallavi. So we are going to proceed with this concept. We will be talking a bit of theory and then we will be moving on to doing some hands-on in here. I sent you all a mail where I asked you to download and install Docker with respect to the operating system you all have. Since we just have one hour with us, I'll be moving on at a pace and this video will be shared with you guys. So you can have a look at it and try it at your end. Although I would wait for you to also proceed with me, but in case you fall back, I'll be moving on so that everybody is at the same page and we respect the time we have available. So with the current pandemic going around us, I hope we have all heard this word of trying to contain the pandemic and trying to contain the person infected. So we all have started to understand the importance of the word containing in another respect. Do you all agree? And why is that important? Anybody? So before this pandemic came into picture, we have not heard this word associated with any other disease where we would like to contain the person who has been infected by it, right? Does anybody has an answer to it? You can say no if you are not able to relate it to the current topic at hand and that's okay. So that I will not wait for your answers and it will save time. Okay. So Aaron has said that to keep characteristics of one different from another, that's a valid point. Another point is to ensure that one is not infecting or impacting the environment. Okay. So if there is an error with one, it does not spread across another. So we would like to contain that's also true that we would like to ensure that the characteristics or the symptoms which is associated with the person one is is just specific to person one and it is not, it is kept different from person two because of a lot of demographic associated with that particular person. And then they are trying to, you know, go back to the history of how that person has caught that infection because it is spreading through a specific mode, which is that it has to somehow get in contact with that spreader and that spreader has to be available at a certain position from where the infection started. So to map that path of travel history, it is extremely important that we contain every individual. So you will hear a lot of this word and if you try to associate this concept with the current ongoing, you will start seeing a lot of similarities and are coming back to the world of computers. We all have come across this, it works on on my machine and then the tester says that there is a bug and it's coming on my machine and the developer says that well, it is not coming on my machine or the software is working on my machine, but it is not working on the tester machines. So well, maybe the management will come and say then we have to ship your machine. And maybe that's how the Docker was born. So this was one May-May I found out when I was trying to figure out Docker in a light source or why if there was a need for something like Docker or containerization to even come up. Okay. So going back to the dark ages when there was the application, which was monolithic in nature as in the application, the operating system the user everything was bound the physical server everything was tightly bound. Okay. And what was that application type called? Anyone knows monolithic? That's the right answer. So that application type was known as the monolithic type of an application when everything was extremely tightly coupled and then came microservices. Is that right that after monolithic came microservices? Is there anything which came in between monolithic and microservices? Monolith and microservices? We all heard of service oriented architecture SOA. So have we heard about service oriented architecture SOA applications SOAP protocols web services we have heard about them right? So that came in between. So there is a comparison between monolithic application and microservices and let's see what is that difference and what is that benefit and need which led to the rise of microservices kind of application design. So from a strategy perspective, a microservice architecture basically follows a UNIX philosophy do one thing and do it well. Okay. And as for Martin forward, he is describing microservice based architecture having two important properties. If you're changing a small part of the application, it should not require rebuilding and redeploying the entire application. Okay. Only that particular change should be rebuild and redeployed and it should adhere to the principles of fine-grained interfaces, which means that the services are independently deployable services and it should be business driven, which basically means if something can be done better using a programming language using particular protocol, then it should be done using that and then you should build interfaces and communication between these services. Do you see a similarity between a microservice type of an application and a web UI pattern, which we all became very familiar to sometime back? It has to do with refreshing of a web page. Testers will know who used to deal with the web UI testing, they would know. Can you relate it? Okay. React components, Aruna again says, anybody else? Anurad sir, can you tell me the exact word? I'm looking at one exact word. So you remember web applications used to refresh entirely and sometime back and then the page load event was detected when the application was completely loaded and then what came into picture? AJAX. So AJAX came into picture and AJAX did the same thing, right? That part of the application UI part, which has to be updated because something has modified. Only that part should get updated. The rest of the part associated with that web UI displayed should not get changed, right? So if you can relate this concept of microservices to a complete application architecture design that instead of now building the complete application using one language, one database, one server and everything using the same programming language, which is all tightly coupled. We now don't do that. We do one thing and do it well and we are now building all in terms of services where everything is independent to every other thing within that application architecture. There are small, small components known as microservices which can talk to each other. So there is a certain set of people who disagree with microservices is an excellent architecture design because there could be communication issues, interface design issues, etc. But nevertheless, it has gained significant popularity and you can find out more information on this link. The another thing is the application lifecycle model which has changed. We are familiar with we have moved from waterfall to agile to DevOps, right? So waterfall, we used to first gather the requirements, then design, then develop, then test at the last. In agile, what we used to do? So what we used to do in agile? Iterative model of building. So we used to have scrums, right? And we, sorry, not scrum, we used to have sprints. And inside each sprint, which is either 2v or 4v, we are performing development test and shipping, development test and shipping, development test and shipping, right? But then came into picture, the DevOps, where we are continuously developing and continuously deploying, continuously releasing. And there is an infinite loop which comes into picture, you code, you test, you deploy, you release and this goes on and on, right? So in a CI CD pipeline, you have a developer who is obviously using a version control software, you have a tester who is also picking up the code from the same version control software, testing information and then there is a operations involved in here who is supposed to deploy and send the release out for usage. So there is a continuous integration and continuous delivery happening. And not many organizations have been able to automate this entire process. Some may have been able to automate continuous integration, partial continuous delivery. But the objective is that now most of the organization has moved on to the DevOps model of application, lifecycle, way of creation. Is that clear to all of you? Now what does this cause? This causes us a wall of confusion. So there is a wall of confusion which exists between the devs, which are testers and developers and ops, they want to deliver. But they are supposed to deliver new functionalities, which mean they are going to change the code, which mean they are going to fix the bugs. At the same time, the operations want stability, they want something which is going to execute. They are wanting to archive the builds. They are looking for the support where they are finding issues with the current existing product out there and they want that to be fixed first. So there exists a tussle between the devs and the operation which exists between the CI, CD, pipeline. So how does containerization helps us overcome these challenges and why do we need it and how does Docker helps us in here? So people started using long back something known as virtual machines which we are all familiar with. Now I believe who all have joined in here understand the difference between virtual machines and containers? Is there anyone in here who does not understand the difference between virtual machine and containers? So let's say I have a Windows operating system and on the same system, I want to also use a Linux machine. So most of the time what we used to do, we used to have a Linux virtual machine on our Windows operating system. Have you guys done that ever? Use that ever? Yeah? Can you have more than one virtual machine on the same operating system? So you have a Linux machine and you have another Windows machine, a VM available and we all know that if we keep on increasing the number of virtual machines on our system, it is going to slow down our system, right? Because A, it takes a lot of space, right? It is going to take a lot of space. It is using our operating system and when a virtual machine is getting installed, it is getting installed with everything, its own operating system, the complete set of application it has, which obviously needs a lot of space. So for example, I have a Linux machine installed on my Windows operating system because maybe something on which I am working requires some Linux set of commands. And let's say I have another Windows machine installed because I want to test something on a different Windows environment and my organization was a startup and it could not afford different original machines. So on the same machine, we used to have different window versions and different Linux versions as well. So those were the days. But then came into picture containers. So what was or what is a container? It's a lightweight, virtualized again, portable software defined environment in which the software is running in isolation from another software on the same physical host machine. In here, the host operating system is common between every application. So the Docker engine layer, which is available in here or inside instead of Docker, if I use the word the container engine layer, which is available in here is using the host operating system and the other hardware infrastructure to allow these different containers to run on the same machine, which causes very less utilization of space, other resources. And they are up very quickly. They take less space. They can be shared easily. They are fast paced. So developers love container because they can get enabled and they can, you know, they're able to contain their work, control their environment and experiment as much as possible without impacting the actual build, which is going to be used by the customers. The operations are happy with containers because they can focus on the current runtime. That means the current customer enabled tasks such as logging, monitoring, utilization, dependency management, etc. We should also know that Docker is not the only type of container available. Did you know that? Did you know that Docker is not the only type of containerization mechanism available? So there are other ways. There are Java containers. There are containers like LXT, OpenVz, Unikernals. Docker became popular because from the growing needs of web scale companies like Google and simple tooling made popular because of it being the open source in nature. Okay. This is a small diagram which explains the architectural difference between VM and containers. Okay. Now, as stated in your email, so before I proceed further and now we are going to do some hands-on, understand some of the concepts of Docker. Do you guys have any queries which I should answer? You can say no if you do not have a question so that again I will not wait. Okay. So installation part of Docker I have sent you guys on mail. So if you have Windows 10, 64-bit pro enterprise, etc. education build available then the direct Docker window installer can work for you. Otherwise, we need to have an install the Docker toolbox. Okay. So I have available with me a Docker toolbox using which I have installed Docker on my system. Now, there is a difference between a Docker image and a Docker container. A Docker image is a unchangeable file that contains the source code libraries and dependencies tools, etc. Other files which is required for an application to run and the Docker container is a virtualized runtime environment where user can isolate applications from the underlying system. Image can exist without containers whereas container cannot exist without image. They need an image to run. So between Docker image and a Docker container if I have to from the concept of oops if I have to create a relation what is that relation between image and a container from the concept of object oriented programming if I would try to create a relation between Docker image and container what could be that anyone inheritance okay has a okay how about class and object will you agree or no inheritance I do not agree because container is not inheriting from an image okay container is not inheriting from an image also you cannot create an container maybe you can create a container from a container I have not dealt further into it but from an image and a container they are to separate what should I say they are to separate states okay they are to separate states so they both are not at the same level okay so there is an image which is a static entity and the runtime instance of an image so if you have to work with that image you have to first convert it into a container and then only you can do something with it so I want you all to understand this okay is everybody who has joined the session is from testing background no don't go there is docker image similar to mement dependency so raman asked no don't go there docker image has got nothing to do with mement dependency so what docker image I can see where your why you have raised this question so maybe you have seen docker hub which has got a set of repositories of all docker images and then you have seen mement which has got a mement repositories of all the possible dependencies which mement could have right raman if that's why you are is because of that you asked me this question okay so like I said don't go there right now I understand your reason is valid but for the time being understand this that docker image is is something I will remind me this question again raman and I will answer you okay I'll tell you why these two should not be compared and how they are different okay so let's set up and run some few commands about docker okay so if you have docker available if you have docker available then you can do this if not it's okay you can try this later so double clicking on this docker quick start icon it will show you that you are getting you know docker is getting started I'm just going to change my let me just increase my font I've modified the font can increase it more should be good okay doesn't like it no problem so here okay so if I run the command docker dash dash version it is going to print docker version which is currently available okay you all can see this right if I say docker version it is printing the current docker version which is available okay simple command to show where and what version is available then the next command I would like to run as docker run hello world so hello world is basically an image available with the docker set of pre-build images okay and if I do not have this image beforehand so let's say if you have just installed the toolbox or the docker window installer then you will not have this hello world image by default so when you say docker run hello world it will first fetch the image and then it would execute it for you so let's say I run docker run hello world what it would do is it says as you can see hello world latest you first fetch this hello world image and then only it would be executing the hello world image okay is this clear these two simple commands which I'm trying to execute so when I say docker run hello world it says hello from docker this message shows that installation appears to be working correctly and etc etc etc so what we have done we have tested the version of our docker so docker dash dash version and the second command I tried was docker run hello world so hello world is generally the first program anybody who writes who is trying to learn a programming language that's why this so if you have how many of you have already docker toolbox available on your system so that I know that you are trying and you are you are going to try with me let me know that you have a the toolbox available and you're going to try with me how many of you are going to do that I want to know the headcount please okay Dave you're trying good Venkatesh okay so two people Anand okay fine okay that's okay so I'm going to keep you your three progress I'm going to try your three progress so let me know when you three are done others what you guys can do is I want you to open docker.com okay and in here in the get started so here is a good example or a guide of a list of docker commands which are generally made available okay and how and where this helps okay so you can read this meanwhile the others are trying and then there is this docker engine command line interface so whatever command we are trying in here in case you are not able to you know go through it or read through it sorry use them you can basically search them here in the command line reference and at least do a reading of it so that you understand what we are we have done so let me know if parallelly for you three Dave Venkatesh and Anand these three these two commands work so we have just tested that our docker installation works by saying version and the hello world worked great okay Dave okay Venkatesh looks happy great okay cool now there is next thing which we need to see so Ramit because he related it to Mevin so there is something called as docker hub available so let's go to docker hub okay here and let's have a look at it so you can quickly sign in and create your account at docker hub so what is available at docker hub what is available at docker hub is a complete list of repositories complete list of images or repositories which people organizations publishers have built and made available for journal public use so I have signed in as a community edition okay so you can have a paid account or if you know you are want to use use the word poor I will just try to rephrase it if you are if you believe in community service like me and then you go ahead and create a community account okay so create a community account and explore docker so I just clicked on explore okay I'll give you five minutes create your account and click on community so you will see all these docker images available so in here you have all these pre-created images with oracle with my SQL with the postgres with the one two with selenium with mongo with node and even docker and you name it I believe they're going to have it so let's say I want something to do with you know tomcat so let's search if it has something with tomcat oh yes it has okay so it has with tomcat let's say does it have anything to do with excel not sure oh it has okay okay that's nice and let's say I want to use python so does it has anything to do with python oh it has that's great okay so there are a lot of these pre-built images available with the docker and they're hosted at the docker hub so go ahead create your account and look at it and now ramit coming to your question I understood why you compared them see in the docker it's like you see that you try to understand that in mevin what we had was so mevin repository I'll open that link for you okay so that I don't give you wrong information although I will try to you know try to answer your question but I could be wrong so here is mevin of selenium and let's search selenium image here in docker okay so here is selenium in docker so you have lots of selenium in docker let's look at selenium hub now if you look at this selenium stuff here in mevin let's click on 3.141.59 this mevin is actually working at the development level okay at the product development level or even if you say test development level it's still a product which we are developing or the code which we are writing and the purpose of this mevin is to ensure that the dependencies which you require for your project are managed at runtime okay so what happens is that when so basically it is controlling the version management of your dependencies at runtime version management of your dependencies of your project at runtime do you understand that ramit what mevin is doing it is trying to manage the project dependencies of your product at runtime okay it has got nothing to do with containing or controlling the environment it's only saying that at the time of execution when you are going to build the product okay when you are going to compile the product at that time what version you have mentioned in your project object model I am going to fetch that version for you at that time of execution from the mevin repository and execute it for you okay whereas when we talk about docker first of all these two are two different things one is managing the project dependencies one is a project management control software the another is environment management control software okay and in here it is segregating the environment mevin is not segregating the environment in a mevin form I can have selenium junit test ng mysql etc etc all clubbed in one whereas in a docker environment I can have a selenium container a mysql container separate and do you get a gist they all could be could all be separate containers where in each container I am managing my environment for selenium separately mysql separately my javas container is separate and there I'm all managing them beautifully they all are you know happy in their own spaces no worries no problems and I'm also happy and I'm working in a safe environment okay so first of all don't compare them two different entities all together and I hope you have understood the difference so I'll be moving on we can talk about it later and it could be possible that I may not have been able to entirely clear your doubt but for the sake of time and everybody else I would like to complete some what I have created for you all okay so you all have created an account and have you all explored that let's say I have searched for my sql so what I want to not hear so what I want to do right now is I want to showcase you how we would be download we would be fetching or pulling the word use this pulling the mysql image then we would be getting into that mysql shell create a very quickly we would be creating a mysql database a table and get some data into it okay so we will do that so all of you should be able to see this page okay who all have created you know a mysql thing we would be taking that up okay so here I would be clicking on this it says docker pull mysql I would copy it go back to my docker terminal and type it docker pull mysql it uses default tag latest so this is going to fetch the image docker mysql latest to my current system so if I run docker images on my system in my current terminal I have docker hello globe mysql standalone chrome debug standalone chrome selenia have docker alpine docker file hello world for you it could be that you have mysql and hello world in your docker images because that's the only two thing which we have done so far okay so docker images will show you that you have downloaded mysql and hello world do you see this Anand Venkatesh and Dave do you all see this so the command we typed was docker pull mysql and then I said docker images okay okay fine and then I said docker images so when done let me know that you are done I'll be moving ahead for those again who are unable to do it along with us you can look at the command what docker pull is doing and what docker images does so it showcases you the repository the available tag the image id which is given by docker when it is created what is the size of the image and you can see that the sizes are just in mbs so imagine how less space it is taking versus the sizes in gigabytes which your virtual machines used to take so Dave is done okay Anand great cool so once we have that available our next is I will show you this command so that you understand it what is written in here and then we run it the command is we say docker run the purpose of docker run is now to create a container okay the purpose of docker run is now to create a container we have the image we now have to create a container so we say we want to create a container with the name so I have given a name let's say palavi dash my sql okay and let's say I want to give it a different name let's say docker dash my sql and then I set my environment so there is this my sql root password which is an environment variable associated with my sql and I set the password to unicorn and I say that publish this container at this port so here I let's say I change the port to six six double six six oh four by default you all people who use my sql they should know that by default my sql uses the port double three zero six but right now here understand that there is my system then there is docker and then there is this container so the my sql is going to run in the container at the container level the port is double three zero six which is to be mapped with the docker port double six zero four and I want to create a container of this image my sql late test with the name docker my sql I want to set the password to unicorn and I want to execute it so this is my command you can change your port id not double three zero six you can change your password and the name which you would like to give to your container okay so here if I run this particular command and I say docker ps-a it would give me the list of the different processes or the containers which are currently executing now for the sake of change I would just try to showcase you or let me just remove some of the containers okay just one second so that you do not see the other things meanwhile people who are trying you can run this command so docker rn with the name of the container so if you don't if you're trying to create a container of an image and you do not give any name to it docker itself gives name to it don't ask me why these strange names are given somebody in docker has a very creative mind so now if I say docker ps-a only my docker is available which is docker my sql okay you all can see this docker my sql is available got it created what about they when Venkatesh so I am moving ahead now okay the next part we are going to do is I am going to say execute the name of my container docker execute in the interactive mode the bash shell okay so the image I have created I want to execute the bash command or the bash shell of that image which I am going to do and in here I am going to type my command which is my sql dash u root dash p unicorn using this command I hope you all are able to see my sql dash u root dash p unicorn I am able to connect to the my sql database now I am going to create database school and I am going to say use school and I am going to create table student you can create any other database or table which you think you would like name the name is a var char and let's say 30 and then I say marks end it looks like I am going to exceed by another 15 to 20 minutes is it okay with you guys insert into table values so insert into student values okay so if you cannot continue you can leave I am sorry that I have exceeding yes it's going to get recorded so those who can stay back stay back because I would be needing to exceed it by another 15-20 minutes to finish what I have created for you all so it would be great if some of you can stay back so that I am not talking to an empty room so I am adding some data into it some more data and let's say now if I say select star from student I would be able to fetch this answer right fetch this particular table this is clear to you guys what is what has happened in here so for people who are not extremely familiar with my sql what we have done is root and here you have you give your password which you have generated okay time save and then the rest is I will simply copy all the commands which I have generated so that you get an idea okay have you all received this okay so now let's look at at the diagrammatic level what is that I have tried to create at the diagrammatic level what is that we have tried to create this is our docker environment which can which has a container of my sql which is exposed to the docker through the port double three zero six now to expose this my sql from this docker to the host which is hosting this docker I have created another port id which is double six zero four do you all understand this so my machine has an ip then the docker terminal which we have opened has an ip and this container which contains the my sql has an ip there are three ip's now okay there are three ip's three ip's local host the docker terminal has an ip and the my sql container has an ip is this clear okay so we are exposed using the command which I have created my by default my sql exposes itself through the port double three zero six so the double three zero six port was exposed to the container which was running the my sql and then I have used that to be ported to these double six zero four of the docker docker terminal inside which this container is running so that I can talk from an outside environment to this my sql database so the next I want to do is I want to talk from outside environment to the my sql container or the my sql db hosted in the docker container is my user scenario clear to you what I am going to do I want to talk from the outside environment to the my sql database hosted in the docker container okay how would I do that for that let me open command prompt now in my system my sql is already installed okay I am a user of my sql database I already have my sql community version server already installed in my system for that I would have to basically go to the place in the back end where my files are so here my sql server bin is where my my sql server is okay so I say cd this now if I say my sql dash u root dash p password to which my sql this particular this has connected local host very good honor so if I have used that command without giving any ip address and I said show databases it has connected to the local host if I say so databases here the databases here and here are different you see this this is my local host this is my container okay now I want to talk to the database of this container for that the command which I would be using is so for the people using this command you can find the machine ip available and container id available we don't need container id we just need machine ip so let's understand the command I am going to use my sql u root password unicorn host is this is the docker machine ip okay if I say docker machine ip this is the ip address I get okay now this is what I'm going to use in my command docker machine ip port double six zero four so I have to connect to this do I see now the same databases as available here in my container and if I say select if I say use school and select star from student got it so now my database is very much contained and happily set up in a docker container okay and if I want I can try to connect to it from outside as well I have to understand there are three ip is associated do you all get this is this clear so the idea behind it was to make you understand that you can run things inside your docker terminal so when you run an image you create containers and then you can access those containers from your outside environment you may have come across a lot of selenium plus docker tutorials right where they're set up selenium grid and then they set up the selenium hub and the nodes and then through docker they they try to execute the selenium the grid environment you must have come across lot of tutorials like that and maybe from this basic concept which I have tried to explain you through my sql you will now understand those tutorials better in case you have not understood it by default then because what happens is we we are not able to see when selenium is executing those tests if you are not using them in the debug mode should we be able to connect one docker container with another container in the same host yes we can do that but again it depends on what type of you know contain what type of contents are running inside those containers have they exposed their ports or some means through which they allow communication and all sort of the stuff now having said that I want to showcase you how you can create your own docker image through a docker file okay I'm going to use a very simple example the idea is to tell you that these are the this is a way somebody is creating these images and putting it out there for usage so what we have is available a set of instructions available to us in form of a script which is known as a docker file from the docker file we use a command called as docker build which creates a docker image this docker image is then run to create the docker containers so the simple example which we are going to take is an example of a java program called as hello globe so I have created a small program in java which is known as hello globe and I am going to create a docker image of this program okay so let's see my program so here is my program hello globe the purpose of this program is to simply print hello globe okay that's all it does it prints hello globe nothing else it does now using the java compiler I created a class while associated with it okay that's what I have done then what's the next part the next part is to I have to actually create a docker file to create a docker file if I create a directory in here I will not be able to it says permission denied so if you look at the path c program files docker toolbox where is this path where is this path c program files docker toolbox it's in my system right in my own system this path exists yes right so I want to create so I go back to the root and I say create docker file I'm creating a directory so remember these are all Linux command it's a good idea to make yourself familiar not even familiar it's a very good idea to make yourself comfortable with Linux commands okay so I have created this directory and then I say cd df okay at the back end if I say pwd present working directory it tells me that this folder is actually created here see users write create df okay pwd is present working directory see users write if I go here see users write so here were here were my files and this is the directory I have created create df okay now I basically have to get the hello globe dot class which is the task file created by compiling the java program here I caught it here and I get my docker file here I will show you what my docker file looks like now if I say ls it will show me these two contents okay I say vim vim is an editor available to us with the environment so these are the standard commands to be used when you're trying to create a docker file from an already existing and available image hello globe dot class run and update the open jdk8 jre as in run the java jdk engine and the entry point you have to use is the hello globe so when you're trying to create a docker file there is a set of instructions which you have to follow from add run entry point so if somebody is familiar with basic programming in that we had this set of instructions set a 10 set b 10 add b and a print scene so similarly here are these keywords from an existing build that means from an existing image add this to the existing image run a compiler the entry point is this this is what the docker file contains now what is alpine latest alpine latest is one of the images which is available to us which prints which prints hello world okay so if I use alpine latest this is what I am going to get so if I say docker run alpine latest so we have to use a command eco also in here because otherwise this doesn't print anything let me just fetch the alpine latest thing so now here we have our docker file and our hello globe dot class which is required when we would be building our docker file so the command which would be using is just fetching that command so just fetching it docker build just getting that command just give me a minute sorry about this okay so the command is this which would be used to create the docker image so I was using name wrong we have to use tag not name in here so the tag for us is globe this would create the image so if I say docker images I should see my docker hello globe in here okay now I have to if I say docker run docker hello globe it prints hello globe that's all it does okay so what we have done in here is we have used an existing image which was alpine latest which was a Linux build on that we have added our Java class and we have used the JDK engine and we have told the entry point and we have created a docker file then using that docker file we created a docker image called as docker hello globe and then from that image I created a container so docker ps-a this was my container which is created name is cocky underscore sanderson okay and this is right now in the execution I mean this right now is running and it has printed hello globe is this clear the creation of docker file so we can create our own docker files our own docker images using existing images and add information to it so again links which provide information how do you create a docker file and how do you what are the syntaxes what are the methodologies available is available inside on this link in detail okay if required and that interests you so with that we have come to the end of this session if you guys have any questions please let me know also let me know was that was this session useful for you and is there anything you would like to ask me and meanwhile you type in your questions some commands docker stop followed by container name will stop all the will stop that container docker rmf followed by the mate name will remove that image docker image prune all will prune all images so okay f is not needed only a is needed okay any questions you guys have in here you can ask me okay thank you Anand thank you so much for that oh is it your refresh your x commands thanks I've always enjoyed Linux and your links much more than windows I mean only till the command level not at the GUI level and the GUI level I don't think so a normal user has I would competition with respect to windows I'm not a fan of apple though at all thank you so much for attending okay guys so what I would be sharing is the recording okay and and the notes okay they would be available for you all and what else do you need from me I think this should be enough and I would be sharing the contents of the docker file which I have used to create this so that you can also use it okay okay yeah yeah I know even I lie I actually understand this so I'd like to go to the basic and then move on okay so thank you so much guys for attending we have another session coming on on the 10th of April Rajat Singhal who is an experienced performance engineer so there is another series which I do that's expert talks so he's going to talk about how performance engineering is different from performance testing and if it interests you you can join that rest thanks a lot for giving me your time and thank you so much for joining this glimpsing world series take care guys stay safe and I hope you all keep on learning and keep on sharing thank you so much