Skip to playerSkip to main content
  • 16 hours ago
Transcript
00:04Next, now we are going to start a very important concept which is called Docker Compose.
00:08Basically, now we have set up multiple containers.
00:12If we take a example of NodeJS application,
00:14we were running these commands
00:19where we were running a single container
00:21with the help of these complex commands.
00:23Now, when we run these complex commands in our terminal,
00:26it can lead to a lot of confusion.
00:28Especially, if we set up multiple containers.
00:31So, when we have multiple containers in our application,
00:35then we have to manage those containers
00:37we use this tool which is called Docker Compose.
00:40So, Docker Compose is a tool for defining and running multiple container applications.
00:44Basically, what do we do with Docker Compose?
00:47The whole process of running up and setting up multiple containers,
00:52we define it in the form of a single file.
00:56So, in the form of a single file, we have to set up multiple containers here.
01:06So, in the form of a single file, we can do some additional things in our container.
01:09So, in the form of a single file, we have to re-execute commands here.
01:12So, in the form of a single file, we have to change some changes here.
01:15And then, we have to save our file again.
01:16So, in the form of a single file, we have to save it and run it.
01:17So, the work we have done in the terminal for Mongo and Mongo Express.
01:21We are going to do that same work with the help of this file.
01:24Now, this file is a special file.
01:27which we know of YAML or .yaml file.
01:32.yaml basically stands for yet another markup language.
01:34So, this is a special file which we will create in our Node.js application.
01:39In which we will have instructions of running and setting up multiple containers in our application.
01:45So, basically, compose gives us a better way, a more structured way for running the same containers,
01:51which we have to run Docker command.
01:53So, YAML file is a way to see this.
01:57Where we define a version of the top.
02:01This version is basically an obsolete property.
02:03We do not define a new version of Docker Compose.
02:07But, on the top we define a version of Docker Compose.
02:09Basically, it is our Docker Compose version.
02:11We define a version of which we will run according to our commands.
02:16Now, as such, we will define which version here.
02:19We will define 3 or 3.8.
02:20There will be no difference between that.
02:22Because this is just an informative attribute.
02:24In fact, those students will be using the latest version of Docker.
02:27They will be able to throw a warning here,
02:29that the version needs to be necessary.
02:31But, we will define it in YAML.
02:33After that, what do we do in our file?
02:36We define our services.
02:37We define our services.
02:38When we think about services,
02:40we have to equate that
02:42the services basically means
02:43how many containers we want to create.
02:46We want to create the container.
02:48We want to define the services.
02:50We know that
02:51we have two containers to create.
02:53One is Mongo.
02:54And one is our Mongo Express.
02:57So, within our services,
02:59there will be our container's name.
03:02So, we will keep our container's name here.
03:05We will place our second container.
03:07We will place our second container.
03:07Mongo Express.
03:10So, this way,
03:11we start to make our different containers
03:12all specific specifications.
03:14Now, we will have to take an example of Mongo Express.
03:17This time we have to take our command.
03:19We need to make our file convert into the file.
03:21So, in the file convert into the file,
03:23we will place to create Mongo Express.
03:25Indentations, spacing very important to YAML.
03:28And that is,
03:34we will start by writing version
03:41let's suppose we have 3.8 version used
03:43we will start with the first service that we are going to create
03:53let's suppose we have Mongo Express
03:57now we will start with the entire environment variables
04:03and different properties
04:03the most common property is image
04:07which image is container we will write
04:09this is our container name
04:12we will write here
04:13which image is container we want to create
04:16so our image name is also
04:19we will simply write Mongo Express
04:22then we have one option
04:23restart always
04:25we want to skip it
04:27this basically means
04:28docker container is going to automatically restart
04:30when docker restarts
04:31we want to skip it
04:33then we will define our ports
04:34so to define our ports
04:37we will simply write ports
04:39and then hyphen
04:40so this port binding
04:41we have done it
04:42now we will write it in the file
04:44how do we write it in the file
04:45here we are going to define that
04:47we want to bind 8081
04:49with this port
04:508081
04:50then we will set up this way
04:52we will set up our environment variables
04:53so we simply write
04:56environment
04:56and
04:571-1
04:58we will define our environment variables
05:00and start
05:01for our Mongo Express
05:02we have 3 environment variables
05:04so first
05:05meconfig
05:06mongodb
05:07admin username
05:08so this is how we convert the entire docker command
05:24which we have run in the terminal
05:25to simple instructions written in a yaml file
05:28so if we want to run both Mongo and Mongo Express containers
05:32we will write in our yaml file
05:34before we are going to do something else
05:38which is basically to stop all of the containers
05:42so now we will stop both containers
05:44so we can write this
05:46so let us do
05:48docker stop
05:48mongo
05:49and our Mongo Express container
05:52which is run
05:54docker ps
06:04THAT
06:05let us clear this
06:13docker ps
06:14and AMAL
06:15If we want to check the images
06:19we can remove the images
06:22to the first image
06:24that we want to remove is this
06:26second image may be
06:28id paste it in the second image
06:31and now we have successfully
06:32deleted the images
06:33docker images also docker images
06:35so now we will not have anything
06:36now we will do this whole
06:37mongo and mongo express
06:38with the help of the yamil file
06:41so in node.js application
06:43we are going to
06:45let's clear this
06:46we are going to create our file
06:48and this file basically
06:50we will create our node application
06:52let us call it
06:54mongo.yamil
06:57mongo.yamil
06:59we will start writing our instructions
07:01so we will start by defining the version
07:04we can write the same version
07:06which we have used in the example
07:07which was 3.8
07:09and after that we will start by defining the services
07:12we will give a space of a tab
07:13and we will define our first service
07:15which is going to be mongo
07:18in the mongo service we have different
07:21attributes and properties
07:22we have to define
07:22so basically
07:24we have to run our mongo container
07:25we have to run all the options
07:27so now we are going to recreate them in the yamil file
07:31first of all we can choose the image option
07:34so we know that we are going to choose the mongo image
07:37after that we can define the ports
07:39ports
07:40so now we can use the 27017
07:44bind to the 27 017
07:46so in this way we will do our port binding
07:48in the yamil file
07:50next we are going to define the environment variables
07:53now we can define the environment variables
07:54now we can define the environment variables
08:08define เคนเฅ‹เคคเคพ เคนเฅˆ. เคฆเฅ‚เคธเคฐเคพ เคคเคฐเฅ€เค•เคพ เคนเฅˆ, we define it with the help of colons.
08:12เคคเฅ‹ colon เค•เฅ‡ เคฌเคพเคฆ เคนเคฎ เคเค• space เคฆเฅ‡เค‚เค—เฅ‡ and เคœเคฌ เคนเคฎ colons use เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚,
08:16เคคเฅ‹ เคตเคนเคพเค เคชเคฐ เคนเคฎเฅ‡เค‚ hyphen เค•เฅ‹ use เคจเคนเฅ€เค‚ เค•เคฐเคจเคพ, simply เคเค• space เคฆเฅ‡เคจเฅ€ เคนเฅˆ and เค‰เคธเค•เฅ‡
08:20เคฌเคพเคฆ we need to define our environment variables like this. Similarly, เคนเคฎ เค…เคชเคจเฅ‡
08:24next environment variable เค•เฅ‹ เคฏเคนเคพเค‚ เคธเฅ‡ copy เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚ and we can define it here
08:29with the help of this colon. เค”เคฐ เค•เฅ‹เคˆ option เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค as such เคฌเคšเคพ เคจเคนเฅ€เค‚ เคนเฅˆ,
08:34เคเค• เคšเฅ€เคœเคผ เคฌเคšเฅ€ เคนเฅˆ, เคตเฅ‹ เคนเฅˆ เค…เคชเคจเฅ‡ network เค•เฅ‹ define เค•เคฐเคจเคพ. เค…เคฌ เคตเคจ เคตเฅ‡ เค† เคŸเฅเคฐเคพเค‡เค‚เค—
08:38to run docker containers with the help of this yaml file, เคคเฅ‹ docker compose เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค
08:42automatically network setup เค•เคฐเค•เฅ‡ and create เค•เคฐเค•เฅ‡ เคฆเฅ‡ เคฐเคนเคพ เคนเฅˆ, เคตเคนเคพเค‚ เคชเคฐ เคนเคฎเฅ‡เค‚
08:47network asset setup เค•เคฐเคจเฅ‡ เค•เฅ€ เคœเคฐเฅ‚เคฐเคค เคจเคนเฅ€เค‚ เคชเคกเคผเคคเฅ€ เคนเฅˆ, เคคเฅ‹ เคฏเคนเคพเค‚ เคชเคฐ เคนเคฎเฅ‡เค‚
08:50network เค•เฅ‹ define เค•เคฐเคจเฅ‡ เค•เฅ€ asset เคœเคฐเฅ‚เคฐเคค เคจเคนเฅ€เค‚ เคนเฅˆ, now we can move on to the second
08:56service which is mongo express, mongo express เค•เฅ‡ เคฒเคฟเค เคนเคฎ เคœเฅ‹ image use เค•เคฐเฅ‡เค‚เค—เฅ‡ that is also
09:02mongo express, เค‰เคธเค•เฅ‡ เคฌเคพเคฆ we can define the ports, ports เค•เฅ‡ เค…เค‚เคฆเคฐ we are going to bind
09:088081 with 8081, เคนเคฎเคพเคฐเฅ‡ เคซเคฟเคฐ environment variables เค† เคœเคพเคเค‚เค—เฅ‡, environment variables เค•เฅ‡ เคฒเคฟเค
09:16เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ let us copy this environment variable and เค‡เคธเฅ‡ เคฏเคนเคพเค‚ เคชเคฐ เคฒเคฟเค– เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚
09:21with the help of this colon, เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เคนเคฎเคพเคฐเคพ second environment variable เค† เคœเคพเคเค—เคพ
09:26which is the password, let us copy this and paste it here with the help of this colon
09:32and finally our URL เค‡เคธเฅ‡ เคญเฅ€ เคฏเคนเคพเค‚ เคธเฅ‡ copy เค•เคฐ เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚ and เค‡เคธเฅ‡ เคนเคฎ เคฏเคนเคพเค‚ เคชเคฐ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡
09:39paste เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚, เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เค…เคชเคจเฅ‡ URL เคธเฅ‡ we can remove the double quotes and last
09:44we can end with a slash, เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ MongoDB URL เคชเฅ‚เคฐเคพ เค•เฅ‹ เคชเฅ‚เคฐเคพ
09:48setup เค•เฅ‹เคˆ เค† เคœเคพเคเค—เคพ and this is how we create a Mongo YAML command,
09:52เค…เคฌ next thing that we have to do is run our containers with the help of Docker Compose,
09:56เคคเฅ‹ Docker Compose เค•เฅ€ help เคธเฅ‡ containers เค•เฅ‹ run เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค, we use this command,
10:00เคฏเคนเคพเค‚ เคชเคฐ เคนเคฎ hyphen เคญเฅ€ เคฒเคฟเค– เคธเค•เคคเฅ‡ เคนเฅˆเค‚, hyphen เค•เฅ‹ เค…เคŸเคพ เคญเฅ€ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
10:02simply Docker Space Compose เคญเฅ€ เคฒเคฟเค– เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
10:05เคซเคฟเคฐ เคนเคฎ เค…เคชเคจเคพ file option เคฆเฅ‡เคคเฅ‡ เคนเฅˆเค‚, เค…เคชเคจเฅ€ file เค•เคพ เคจเคพเคฎ เคฆเฅ‡เคคเฅ‡ เคนเฅˆเค‚ and then we define the action that
10:10we want to perform,
10:11generally Docker Compose เค•เฅ‡ เค…เค‚เคฆเคฐ เคฆเฅ‹ เคธเคฌเคธเฅ‡ popular actions เคนเฅˆ, up and down,
10:14up เคตเคพเคฒเคพ เคœเฅ‹ action เคนเฅˆ เคตเฅ‹ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค เคนเคฎเคพเคฐเฅ‡ เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ network เค•เฅ‹ set up เค•เคฐเฅ‡เค—เคพ,
10:19เคนเคฎเคพเคฐเฅ‡ Docker containers เค•เฅ‹ set up เค•เคฐเฅ‡เค—เคพ, เค‰เคจเฅเคนเฅ‡เค‚ running state เค•เฅ‡ เค…เค‚เคฆเคฐ เคฒเฅ‡เค•เคฐ เค†เคเค—เคพ,
10:23เคœเคฌ เคนเคฎ down action perform เค•เคฐเฅ‡เค‚เค—เฅ‡ เคคเฅ‹ เค‰เคธเค•เคพ เคฎเคคเคฒเคฌ เคนเฅˆ เคนเคฎเคพเคฐเฅ‡ เคœเฅ‹ containers เคนเฅˆ,
10:27เคตเฅ‹ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค permanently delete เคนเฅ‹ เคœเคพเคเค‚เค—เฅ‡ and finally,
10:30เคนเคฎ เค…เคชเคจเฅ‡ containers เค•เฅ‹ run เค•เคฐเฅ‡เค‚เค—เฅ‡ in the detach mode,
10:32เคคเฅ‹ เคฏเคนเคพเค‚ เคชเคฐ, since we are already inside the node application,
10:36เคœเคนเคพเค‚ เคชเคฐ เคนเคฎเคจเฅ‡ เค…เคชเคจเฅ€ yaml file เค•เฅ‹ create เค•เคฟเคฏเคพ เคนเฅˆ,
10:38เคคเฅ‹ เคนเคฎ directly เค…เคชเคจเฅ€ Docker Compose command run เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
10:42docker-compose-v,
10:44เคซเคฟเคฐ เคนเคฎเคพเคฐเฅ€ file เค•เคพ เคจเคพเคฎ which is mongo.yaml
10:47and เค‡เคธเฅ‡ เคนเคฎ action เคนเฅˆ,
10:49เค…เคฌ run เค•เคฐเฅ‡เค‚เค—เฅ‡ in the detach mode,
10:52เคคเฅ‹ let us enter it,
10:53เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ warning เคนเฅ€ เค†เคˆ เคนเฅˆ,
10:55that the version is obsolete,
10:56เคœเคฟเคธเค•เฅ‹ เคนเคฎเคจเฅ‡ เคชเคนเคฒเฅ‡ เคญเฅ€ เคฌเคพเคค เค•เฅ€ เคฅเฅ€,
10:58เค•เคฟ เคฏเคน version เคนเคฎ เคšเคพเคนเฅ‡ เคคเฅ‹ skip เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
11:00เคฏเคน as such latest,
11:01เคนเคฎเคพเคฐเฅ‡ เคœเฅ‹ Docker Compose versions เคนเฅˆเค‚,
11:02เค‰เคธเค•เฅ‡ เค…เค‚เคฆเคฐ useful เคจเคนเฅ€เค‚ เคฐเคนเคคเคพ,
11:04เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค เคฆเฅ‹เคจเฅ‹เค‚ เคœเฅ‹ images เคนเฅˆเค‚,
11:06Mongo Express and Mongo,
11:07เคฆเฅ‹เคจเฅ‹เค‚ เค•เฅ‹ เคชเฅเคฒ เค•เคฟเคฏเคพ เคœเคพ เคฐเคนเคพ เคนเฅˆ,
11:09เค‰เคธเค•เฅ‡ เคฌเคพเคฆ with the help of these images,
11:10our Docker containers will be set up,
11:12เคคเฅ‹ finally,
11:13เคคเฅ€เคจ เคšเฅ€เคœเฅ‡เค‚,
11:14เค‡เค‚เคŸเคฐเฅ‡เคธเฅเคŸเคฟเค‚เค— เคšเฅ€เคœเฅ‡เค‚ เคนเคฎเฅ‡เค‚ เคฆเฅ‡เค–เคจเฅ‡ เค•เฅ‹ เคฎเคฟเคฒเฅ‡เค‚เค—เฅ€,
11:15เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค Docker Compose เคจเฅ‡ เค…เคชเคจเคพ network เคนเคฎเฅ‡เค‚ create เค•เคฐเค•เฅ‡ เคฆเคฟเคฏเคพ เคนเฅˆ,
11:19เค‡เคธ network เค•เฅ‹ เคจเคพเคฎ เคฆเคฟเคฏเคพ เคนเฅˆ node app default,
11:21เค‰เคธเค•เฅ‡ เคฌเคพเคฆ it has also created these two containers for running Mongo and Mongo Express,
11:25you can also clear this,
11:27เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ เคคเฅ‹ เค…เคชเคจเคพ network เคœเฅ‹ เคนเฅˆ เค‰เคธเฅ‡ verify เค•เคฐ เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚,
11:30Docker, เคฏเคน เคนเคฎเคพเคฐเคพ network เคฅเคพ,
11:32เคœเคฟเคธเฅ‡ เคนเคฎเคจเฅ‡ create เค•เคฟเคฏเคพ เคฅเคพ,
11:33Mongo network,
11:34เคฏเคน เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค Docker Compose เคจเฅ‡ create เค•เคฟเคฏเคพ,
11:36เค‰เคธเค•เฅ‡ เค…เคฒเคพเคตเคพ,
11:37Docker PS เค…เค—เคฐ เค•เคฐเฅ‡เค‚,
11:39เคคเฅ‹ เคฏเคน เคนเคฎเคพเคฐเฅ‡ เคฆเฅ‹ containers เคนเฅˆ,
11:40in the running state,
11:41Mongo Express and Mongo,
11:43เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เค‡เคจ containers เค•เฅ‡ logs เคญเฅ€ เคšเฅ‡เค• เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
11:45เคคเฅ‹ docker logs,
11:47this is the container ID,
11:48เคคเฅ‹ Mongo Express เค•เฅ‡ logs เค•เฅ‹ เคนเคฎ เคšเฅ‡เค• เค•เคฐเคคเฅ‡ เคนเฅˆเค‚,
11:51so these are the logs,
11:53เคฏเคนเคพเค‚ เคชเคฐ เคนเคฎเฅ‡เค‚ เคชเคคเคพ เคšเคฒ เคฐเคนเคพ เคนเฅˆ เค•เคฟ เคฌเคพเคฐ-เคฌเคพเคฐ
11:54Mongo Express เคจเฅ‡ เค•เฅเคฏเคพ เค•เคฟเคฏเคพ เคนเฅˆ,
11:56Mongo เค•เฅ‡ เคธเคพเคฅ,
11:57เคฎเคคเคฒเคฌ เคนเคฎเคพเคฐเคพ เคœเฅ‹ Mongo container เคนเฅˆ,
11:59เค‰เคธเค•เฅ‡ เคธเคพเคฅ connection เคฌเคจเคพเคจเฅ‡ เค•เฅ€ เค•เฅ‹เคถเคฟเคถ เค•เฅ€ เคนเฅˆ,
12:02เคคเฅ‹ เคชเคนเคฒเฅ‡ connection refuse เคนเฅเค†,
12:03connection refuse เคนเฅเค†,
12:04connection refuse เคนเฅเค†,
12:04connection refuse เคนเฅเค†,
12:05เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡,
12:06เค‰เคธเค•เฅ‡ เคฌเคพเคฆ finally connection established เคนเฅเค† เคนเฅˆ,
12:08เคœเคฟเคธเค•เฅ‡ เคฌเคพเคฆ Mongo Express Server
12:09started listening at port 8081,
12:12เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคนเคฎเคพเคฐเคพ connection
12:14เคœเฅ‹ เคนเฅˆ,
12:15established เคนเฅเค† เคนเฅˆ,
12:16we can also verify this,
12:17เค•เคฟ เคนเคฎเคพเคฐเฅ‡ เคœเฅ‹ container เคนเฅˆ,
12:18เคตเฅ‹ successfully setup เคนเฅ‹เค•เคฐ run เคนเฅ‹ เคฐเคนเฅ‡ เคนเฅˆเค‚,
12:21เค•เคฟ 8081 เคชเคฐ เค…เค—เคฐ เคนเคฎ เคœเคพเคเค‚เค—เฅ‡,
12:23เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡,
12:24เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ Mongo Express
12:25เคนเคฎเฅ‡เค‚ run เค•เคฐเคคเคพ เคนเฅเค†,
12:26เค…เคฌ เคเค• เค”เคฐ interesting เคšเฅ€เคœ เคนเฅ‹,
12:28เคœเฅ‹ เคนเคฎ note เค•เคฐเฅ‡เค‚เค—เฅ‡,
12:29เคนเคฎเคจเฅ‡ เคœเฅ‹ เคชเคนเคฒเฅ‡ เค…เคชเคจเคพ sample database
12:31create เค•เคฟเคฏเคพ เคฅเคพ,
12:32เคตเฅ‹ เค…เคฌ เคฏเคนเคพเค‚ เคธเฅ‡ completely delete เคนเฅ‹ เคšเฅเค•เคพ เคนเฅˆ,
12:34เค‰เคธเค•เฅ‡ delete เคนเฅ‹เคจเฅ‡ เค•เคพ reason เคนเฅˆ,
12:48เคตเฅˆเคธเฅ‡ เคชเฅเคฐเคพเคจเคพ data,
12:49เคœเฅ‹ เคญเฅ€ เคนเคฎเคจเฅ‡ database collections,
12:50เคนเคฎเคพเคฐเฅ‡ documents create เค•เคฟเคฏเฅ‡ เคฅเฅ‡,
12:52เคตเฅ‹ เคธเคพเคฐเฅ‡-เคธเคพเคฐเฅ‡ delete เคนเฅ‹ เคšเฅเค•เฅ‡ เคนเฅ‹เค‚เค—เฅ‡,
12:53there is something called volume in Docker,
12:56เคœเคฟเคธเค•เฅ‹ เคนเคฎ use เค•เคฐเคคเฅ‡ เคนเฅˆเค‚ for data persistence,
12:58เคœเคฟเคธเค•เฅ‹ เค†เค—เฅ‡ เคœเคพเค•เฅ‡ เคนเคฎ cover เค•เคฐเฅ‡เค‚เค—เฅ‡,
13:00เคชเคฐ เค…เคญเฅ€ เค•เฅ‡ เคฒเคฟเค เคœเคฌ เคนเคฎ containers เค•เฅ‹ restart เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚,
13:02เคฏเคพ เคจเค containers create เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚,
13:03เคฎเคนเคพเค เคชเคฐ database เค•เฅ‡ เค…เค‚เคฆเคฐ เค•เฅ‹เคˆ persistence เคจเคนเฅ€เค‚,
13:05เคคเฅ‹ เคฏเคนเคพเค เคชเคฐ เคฆเฅเคฌเคพเคฐเคพ เคธเฅ‡,
13:07เคนเคฎเฅ‡เค‚ เคตเคนเฅ€ same เคœเฅ‹ database เคนเฅˆ,
13:09เคตเฅ‹ create เค•เคฐเคจเคพ เคชเคกเคผเฅ‡เค—เคพ,
13:11เคคเฅ‹ we have created the database,
13:13and เค‡เคธ database เค•เฅ‡ เค…เค‚เคฆเคฐ เคœเคพเค•เฅ‡,
13:14เคนเคฎเฅ‡เค‚ เคตเคนเฅ€ same collection create เค•เคฐเคจเคพ เคชเคกเคผเฅ‡เค—เคพ,
13:17collection เค•เฅ‡ เค…เค‚เคฆเคฐ we can create a new document,
13:19เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹,
13:21เคเค• new document create เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
13:23with the same email or maybe a different email,
13:28email เคฎเฅ‡เค‚ let us suppose john at the rate gmail dot com,
13:34and เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคเค• username เค† เคœเคพเคเค—เคพ,
13:37which will be john doe,
13:41and we'll have a password,
13:45that is going to be secret,
13:50เค‡เคธเฅ‡ save เค•เคฐ เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚,
13:51เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคเค• document เค† เค—เคฏเคพ,
13:52verify เค•เฅˆเคธเฅ‡ เค•เคฐเฅ‡เค‚,
13:53node application เค•เฅ‡ เคธเคพเคฅ,
13:54connection established เคนเฅ‹ เค—เคฏเคพ เคนเฅˆ,
13:56เคฏเคน เคนเคฎเคพเคฐเคพ เคชเฅเคฐเคพเคจเคพ data เคนเฅˆ,
13:57เคœเคฌ เคนเคฎ เค‡เคธเฅ‡ refresh เค•เคฐเฅ‡เค‚เค—เฅ‡,
13:59server start เค•เคฐ เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚ เค‰เคธเคธเฅ‡ เคชเคนเคฒเฅ‡,
14:02node server.js,
14:04เคœเคฌ เคนเคฎ เค‡เคธเฅ‡ refresh เค•เคฐเฅ‡เค‚เค—เฅ‡,
14:06เคคเฅ‹ เค…เคฌ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคจเคฏเคพ data เค† เค—เคฏเคพ เคนเฅˆ,
14:08เคœเคฟเคธเฅ‡ เคนเคฎเคจเฅ‡ new insert เค•เคฟเคฏเคพ เคฅเคพ database เค•เฅ‡ เค…เค‚เคฆเคฐ,
14:11เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคนเคฎเคจเฅ‡ เค…เคชเคจเฅ€ yaml file เค•เฅ€,
14:13เคฏเคพเคจเคฟ docker compose เค•เฅ€ help เคธเฅ‡,
14:15เค…เคฌ เค…เคชเคจเฅ‡ containers เค•เฅ‹ recreate เค•เคฐ เคฒเคฟเคฏเคพ เคนเฅˆ,
14:17restart เค•เคฐ เคฒเคฟเคฏเคพ เคนเฅˆ,
14:19and they are successfully working with our existing node.js application,
14:23เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ docker compose เค•เฅ‹ เคนเคฎ use เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
14:26เค…เคชเคจเฅ€ commands เค•เฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ file เคฎเฅ‡เค‚ เคนเคฎ เคฒเคฟเค– เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
14:28เคœเคฌ เคญเฅ€ เคนเคฎเฅ‡เค‚ multiple containers เค•เฅ‡ เคธเคพเคฅ work เค•เคฐเคจเคพ เคนเฅ‹เคคเคพ เคนเฅˆ,
14:31and finally,
14:32เคœเฅˆเคธเฅ‡ เค‡เคจ containers เค•เฅ‹ เคนเคฎเคจเฅ‡ start เค•เคฟเคฏเคพ เคฅเคพ,
14:34เคตเฅˆเคธเฅ‡ เคนเฅ€ เคนเคฎเคจเฅ‡ shutdown เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
14:35with the help of the down command,
14:37เคคเฅ‹ เคฏเคนเฅ€เค‚ เคชเคฐ if we run the docker compose hyphen fmongo.yaml
14:43and เค…เคฌ เค…เค—เคฐ เคนเคฎ down action เค•เฅ‹ perform เค•เคฐเฅ‡เค‚,
14:46เคคเฅ‹ เค…เคฌ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค เคธเคพเคฐเฅ‡ เค•เฅ‡ เคธเคพเคฐเฅ‡ containers,
14:48in fact including the network,
14:50เคฏเคน เคธเคพเคฐเฅ€ เคšเฅ€เคœเคผเฅ‡เค‚ remove เคนเฅ‹ เคœเคพเคเค‚เค—เฅ€,
14:52เคนเคฎ docker network ls เค…เค—เคฐ เค•เคฐเฅ‡เค‚,
14:56เคคเฅ‹ เค…เคฌ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค เคตเฅ‹ network เคญเฅ€ completely gaire เคฌเฅ‹ เคšเฅเค•เคพ เคนเฅˆ,
14:59and docker ps- a เค•เคฐเฅ‡เค‚,
15:02เคคเฅ‹ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ containers เคญเฅ€ เคจเคนเฅ€เค‚ เคนเฅˆ,
15:04in fact docker desktop เคชเคฐ เคœเคพเค•เคฐ we can also verify this,
15:07images เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคนเฅˆเค‚,
15:09เค•เฅเคฏเฅ‚เค‚เค•เคฟ images เค•เฅ‹ เคนเคฎเคจเฅ‡ use เค•เคฟเคฏเคพ เคฅเคพ,
15:10but เคตเฅ‹ containers เค…เคฌ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค delete เคนเฅ‹ เคšเฅเค•เฅ‡ เคนเฅˆ,
15:13so this is how we can delete everything with the help of this down command,
15:21next use case for docker that we are going to cover,
15:23is dockerizing our own application,
15:26basically,
15:27เค…เคญเฅ€ เคคเค• เคนเคฎเคจเฅ‡ เคœเฅ‹ node.js application เค•เฅ‹ built เค•เคฟเคฏเคพ เคนเฅˆ,
15:29if this is our app,
15:31เคคเฅ‹ เค…เคญเฅ€ เคตเฅ‹ เคนเคฎเคพเคฐเฅ‡ local system เค•เฅ‡ เค…เค‚เคฆเคฐ exist เค•เคฐเคคเฅ€ เคนเฅˆ,
15:33next เคนเคฎ เค•เฅเคฏเคพ เค•เคฐเคคเฅ‡ เคนเฅˆเค‚,
15:35เคนเคฎ เค‡เคธ application เค•เฅ‹,
15:36we are going to convert it into a docker image,
15:39เค”เคฐ เคซเคฟเคฐ เคฏเคน image เคนเฅˆ,
15:41เคœเคฟเคธเฅ‡ เคนเคฎ เค…เคชเคจเฅ‡ teammates เค•เฅ‡ เคธเคพเคฅ share เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
15:43เคฆเฅ‚เคธเคฐเฅ‡ เคฒเฅ‹เค—เฅ‹เค‚ เค•เฅ‡ เคธเคพเคฅ share เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
15:44เคฏเคพ เคซเคฟเคฐ เค‡เคธเฅ€ image เค•เคพ,
15:45เคนเคฎเฅ‡เค‚ container run เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
15:47basically, เคœเคฟเคธ application เค•เฅ‹,
15:49เคจเฅ‹เคŸ เคœเคฟเคธ application เค•เฅ‹,
16:01we are going to convert this application into a docker image,
16:04เค…เคฌ generally, if we talk about the production environment,
16:07เคคเฅ‹ เคฏเคน เคœเฅ‹ เค•เคพเคฎ เคนเฅ‹เคคเคพ เคนเฅˆ,
16:08เคนเคฎเคพเคฐเฅ€ CICD pipeline เค•เฅ‡ เค…เค‚เคฆ,
16:09Genkin เคจเคพเคฎ เค•เคพ เคเค• tool เคนเฅ‹เคคเคพ เคนเฅˆ,
16:11เคœเฅ‹ automatically เคนเคฎเคพเคฐเฅ€ เคœเฅ‹ application เคนเฅ‹เคคเฅ€ เคนเฅˆ,
16:13เค‰เคธเฅ‡ เคเค• docker image เค•เฅ‡ เค…เค‚เคฆเคฐ convert เค•เคฐเคคเคพ เคนเฅˆ,
16:14เค”เคฐ เคซเคฟเคฐ เค‰เคธเฅ€ image เค•เฅ‹ push เค•เคฟเคฏเคพ เคœเคพเคคเคพ เคนเฅˆ,
16:16to a public repository เค”เคฐ maybe a private repo,
16:19เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เค•เคพ prod environment เค•เฅ‡ เค…เค‚เคฆเคฐ,
16:21เคนเคฎเคพเคฐเคพ flow เคนเฅ‹เคคเคพ เคนเฅˆ,
16:21เคชเคฐ เคฏเคนเคพเค‚ เคชเคฐ เคนเคฎ เค•เฅ‹เคˆ tool use เคจเคนเฅ€เค‚ เค•เคฐเฅ‡เค‚เค—เฅ‡,
16:24เคฏเคนเคพเค‚ เคชเคฐ เคนเคฎ เค–เฅเคฆเฅ€ เคœเคพเค•เคฐ เค…เคชเคจเฅ€ เค‡เคธ application เค•เฅ‹ package เค•เคฐเฅ‡เค‚เค—เฅ‡,
16:27into a docker image,
16:28เค…เคฌ the process of converting our application into a docker image,
16:32is called dockerizing our application,
16:34เค”เคฐ เค…เคชเคจเฅ€ application เค•เฅ‹ dockerize เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค,
16:37we use something called a docker file,
16:39docker file basically,
16:41a special file เคนเฅ‹เคคเฅ€ เคนเฅˆ,
16:42เคœเคฟเคธเค•เฅ‡ เค…เค‚เคฆเคฐ instructions เคนเฅ‹เคคเฅ‡ เคนเฅˆเค‚,
16:44เค•เฅˆเคธเฅ‡ applications เค•เฅ‹ docker image เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเคฎเฅ‡เค‚ convert เค•เคฐเคจเคพ เคนเฅˆ,
16:47so this is a very special kind of file,
16:49เคœเคฟเคธเฅ‡ เคนเคฎ เค…เคชเคจเฅ€ node.js application เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเฅ€ create เค•เคฐเคคเฅ‡ เคนเฅˆเค‚,
16:52so this file is basically like a blueprint to create our docker images,
16:56เค…เคฌ if we want to see what a docker file looks like,
16:58เคคเฅ‹ เคนเคฎเคพเคฐเฅ€ docker file เค•เฅเค› เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เค•เฅ€ เคฆเคฟเค–เคพเคˆ เคฆเฅ‡เคคเฅ€ เคนเฅˆ,
17:01เคœเคฟเคธเค•เฅ‡ เค…เค‚เคฆเคฐ we have different different commands,
17:03เคœเฅ‹ เคฌเคคเคพเคคเฅ‡ เคนเฅˆเค‚ เคนเคฎเคพเคฐเฅ€ docker image เค•เฅ‹ เค•เคฟเคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ setup เค•เคฐเคจเคพ เคนเฅˆ,
17:06if we talk about the different commands,
17:08เคคเฅ‹ เคนเฅˆ เคชเฅ‚เคฐเฅ€ เค•เฅ€ เคชเฅ‚เคฐเฅ€ เคœเฅ‹ documentation เคนเฅˆ,
17:10it is also available on docker docs,
17:12so we can go to this link,
17:14and เคฏเคนเคพเค‚ เคชเคฐ เคนเคฎเคพเคฐเฅ€ เคœเฅ‹ common instructions เคนเฅˆ,
17:16เคœเฅ‹ docker file เค•เฅ‡ เค…เค‚เคฆเคฐ include เคนเฅ‹เคจเฅ€ เคšเคพเคนเคฟเค,
17:18เค‰เคจเค•เฅ‡ เคฌเคพเคฐเฅ‡ เคฎเฅ‡เค‚ เคนเคฎเฅ‡เค‚ details เคฎเฅ‡เค‚ เคœเคพเคเค‚เค—เฅ€,
17:20เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ€,
17:21เคธเคฌเคธเฅ‡ common instruction เคเค• docker file เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเฅ‹เคคเฅ€ เคนเฅˆ,
17:23from instruction,
17:24from instruction เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเคฎ เค…เคชเคจเฅ€ base image เค•เฅ‹ define เค•เคฐเคคเฅ‡ เคนเฅˆเค‚,
17:29เค…เคฌ what exactly is this base image,
17:31basically เคนเคฎ เคฒเคฟเค–เคคเฅ‡ เคนเฅˆเค‚ from,
17:34and เค‰เคธเค•เฅ‡ เคฌเคพเคฆ we define our base image,
17:37base image เค•เฅ‡ เคฌเคพเคฐเฅ‡ เคฎเฅ‡เค‚ เคนเคฎเคจเฅ‡ เคชเคนเคฒเฅ‡ เคญเฅ€ discuss เค•เคฟเคฏเคพ เคฅเคพ,
17:39when we talk about the layering of images inside an image itself,
17:43inside a docker image,
17:44basically base image เค•เฅ‹ เคนเคฎ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ imagine เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
17:47เค•เคฟ เค…เค—เคฐ เคนเคฎเคพเคฐเฅ€ application เคนเฅˆ,
17:49เคœเฅ‹ เคเค• node.js application เคนเฅˆ,
17:51เค‰เคธเฅ‡ เค…เค—เคฐ เคนเคฎเฅ‡เค‚ run เค•เคฐเคจเคพ เคนเฅˆ,
17:52เคคเฅ‹ run เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค เคนเคฎเคพเคฐเฅ‡ system เค•เฅ‡ เค‰เคชเคฐ already existing เค•เฅเคฏเคพ เคšเฅ€เคœเคผเฅ‡ เคนเฅ‹เคจเฅ€ เคšเคพเคนเคฟเค,
17:57เคนเคฎเฅ‡เค‚ เคชเคคเคพ เคนเฅˆ เคนเคฎเคพเคฐเฅ€ node.js application เค•เฅ‡ เค…เค‚เคฆเคฐ เคฏเฅ‡ เคธเคพเคฐเฅ€ เคšเฅ€เคœเคผเฅ‡เค‚ exist เค•เคฐเคคเฅ€ เคนเฅˆเค‚,
18:01เคชเคฐ เค•เฅเคฏเคพ เคนเคฎ เค•เคน เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เค•เคฟ เคนเคฎเคพเคฐเฅ‡ system เค•เฅ‡ เค…เค‚เคฆเคฐ เคฏเฅ‡ เคชเฅ‚เคฐเคพ folder เค•เฅ€ เคธเคพเคฐเฅ€ files
18:05run เค•เคฐเฅ‡เค‚, เค‰เคธเค•เฅ‡ เคฒเคฟเค system เค•เฅ‡ เค…เค‚เคฆเคฐ node เค•เคพ install เคนเฅ‹เคจเคพ เคฌเคนเฅเคค เคœเคผเคฐเฅ‚เคฐเฅ€ เคนเฅˆ,
18:10เคคเฅ‹ เคนเคฎเคพเคฐเฅ€ application เค•เฅ‡ เคฒเคฟเค,
18:12เคœเฅ‹ base image เคนเฅ‹เค—เฅ€,
18:13that will basically be a node image,
18:16เค•เคฟ เคนเคฎเคพเคฐเฅ‡ system เค•เฅ‡ เค…เค‚เคฆเคฐ node installed เคนเฅˆ,
18:19เคคเคญเฅ€ app run เค•เคฐ เคฐเคนเฅ€ เคนเฅˆ,
18:21เคคเฅ‹ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ Docker เค•เฅ‡ เค…เค‚เคฆเคฐ,
18:22base image เคœเฅ‹ เคนเคฎ install เค•เคฐเฅ‡เค‚เค—เฅ‡,
18:24เคตเฅ‹ node เค•เฅ€ image เคนเฅ‹เค—เฅ€,
18:26เคฎเคคเคฒเคฌ node เค•เฅ‡ เคœเคฟเคคเคจเฅ‡ เคญเฅ€ tools and technologies เคนเฅˆเค‚,
18:28เคตเฅ‹ เคนเคฎเคพเคฐเฅ‡ Docker container เค•เฅ‡ เค…เค‚เคฆเคฐ already set up เคนเฅ‹เค—เฅ€,
18:31เคคเคญเฅ€ เคนเคฎเคพเคฐเฅ€ เค‡เคธ application เค•เคพ container,
18:34เคตเคนเคพเค เคชเคฐ successfully run เค•เคฐ เคชเคพเคเค—เคพ,
18:35so this is the concept for the base image,
18:37เคฏเคนเคพเค เคชเคฐ เคฏเคน เคœเฅ‹ example เคนเฅˆ,
18:38this is of a flask based application,
18:40เคคเฅ‹ เค‡เคธเคฒเคฟเค เคฏเคนเคพเค เคชเคฐ base image เคนเฅˆ, python,
18:42เคคเฅ‹ python เค•เคพ เคเค• specific version เคนเฅˆ,
18:44เคœเฅ‹ เคนเคพเค เคชเคฐ install เค•เคฟเคฏเคพ เคœเคพ เคฐเคนเฅ‡ เคนเฅˆ,
18:45เคฏเคน เค‰เคธเฅ‡ base image เค•เฅ€ เคคเคฐเคน define เค•เคฟเคฏเคพ เคœเคพ เคฐเคนเฅ‡,
18:47work directory instruction เคธเฅ‡,
18:49เคนเคฎ basically เค…เคชเคจเฅ€ working directory เค•เฅ‹ define เค•เคฐเคคเฅ‡ เคนเฅˆเค‚,
18:52เคคเฅ‹ working directory เค”เคฐ the path in the image,
18:54where files will be copied and commands will be executed,
18:57เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคเค• เค”เคฐ important command เคนเฅ‹เคคเฅ€ เคนเฅˆ,
19:00which is the copy command,
19:01copy command, เคœเคฌ เคญเฅ€ เคนเคฎ เคฒเคฟเค–เคคเฅ‡ เคนเฅˆเค‚,
19:04if we write copy,
19:05เคคเฅ‹ basically เคนเคฎเคพเคฐเฅ‡ host เคธเฅ‡,
19:08เคนเคฎเฅ‡เค‚ host เคธเฅ‡,
19:09เคœเฅ‹ เคญเฅ€ files copy เค•เคฐเคจเฅ€ เคนเฅ‹เคคเฅ€ เคนเฅˆ,
19:11เค‰เคจเฅเคนเฅ‡เค‚ เคนเคฎ เคฌเคคเคพเคคเฅ‡ เคนเฅˆเค‚ เค•เคฟ เค…เคชเคจเฅ‡ container เค•เฅ‡ เค…เค‚เคฆเคฐ,
19:13เคœเฅ‹ เคญเฅ€ เคนเคฎเคพเคฐเคพ Docker container เคฌเคจ เค•เคฐ เค†เคเค—เคพ,
19:16เค‰เคธ container เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเคฎเคพเคฐเฅ‡
19:17เค•เฅŒเคจ เคธเฅ‡ path เคชเคฐ เคตเฅ‹ files copy เคนเฅ‹เคจเฅ€ เคšเคพเคนเคฟเค,
19:20เคœเฅˆเคธเฅ‡ example เค•เฅ‡ เคฒเคฟเค,
19:21เค…เค—เคฐ เคฏเคนเคพเค‚ เคชเคฐ เคฒเคฟเค–เคพ เคนเฅเค† เคนเฅˆ, copy,
19:24requirements.txt,
19:25เคคเฅ‹ basically เคนเคฎ เค‡เคธ file เค•เฅ‹,
19:28เค…เคชเคจเฅ‡ container เค•เฅ€,
19:29เค‡เคธ file เค•เฅ‡ เค…เค‚เคฆเคฐ copy เค•เคฐเคจเคพ เคšเคพเคนเคคเฅ‡ เคนเฅˆเค‚,
19:31เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ file เค•เฅ‹ file เคฎเฅ‡เค‚ copy เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
19:33เคฏเคพ เค•เคพเคซเฅ€ เคธเคพเคฐเฅ‡ files and folders เค•เฅ‹ เคญเฅ€
19:35เค•เคฟเคธเฅ€ เคเค• particular folder เค•เฅ‡ เค…เค‚เคฆเคฐ copy เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
19:38เคคเฅ‹ เคนเคฎ เคšเคพเคนเฅ‡เค‚ เค•เคฟ,
19:39เคœเคฌ เคนเคฎเคพเคฐเคพ Docker container เคฌเคจเฅ‡ เคคเฅ‹ เคนเคฎเคพเคฐเฅ€ เคฏเคน เคธเคพเคฐเฅ€
19:41เค•เฅ€ เคธเคพเคฐเฅ€ files เคนเคฎเคพเคฐเฅ‡ เค‰เคธ container
19:43เค•เฅ‡ เค…เค‚เคฆเคฐ เคœเคพเค•เคฐ copy เคนเฅ‹ เคœเคพเคเค‚,
19:45เคคเคญเฅ€ เคคเฅ‹ เคตเฅ‹ เคตเคนเคพเค เคชเคฐ run เค•เคฐ เคชเคพเคเค‚เค—เฅ€,
19:46เค‰เคธเค•เฅ‡ เคธเคพเคฅ เคฎเฅ‡เค‚ we also have the run command,
19:49run command เคธเฅ‡ basically we give instruction,
19:52we tell the builder to run the specific command,
20:03before the container starts,
20:05เคฏเคพเคจเคฟ เคœเคฌ เคญเฅ€ Docker container เค•เฅ‹ เค†เคฎเฅ‡
20:07build เค•เคฐเคจเคพ เคนเฅ‹เค—เคพ, เคคเฅ‹ เค‰เคธ time เคชเคฐ เคนเคฎเคพเคฐเฅ€ เคฏเคน command
20:09run เค•เคฐเฅ‡เค—เฅ€, เคคเฅ‹ run command basically
20:11เคตเฅ‹ instructions เคฆเฅ‡เคคเฅ€ เคนเฅˆ, เคœเฅ‹ Docker image
20:13build เคนเฅ‹เคคเฅ‡ time, เคœเคฟเคจ instructions เค•เฅ‹
20:15เคธเคฌ เค•เฅ‹ run เคนเฅ‹เคจเคพ เคนเฅˆ, เคคเฅ‹ เคนเคฎเคพเคฐเฅ‡ code เค•เฅ‡ เค…เค‚เคฆเคฐ,
20:17เคฏเคพเคจเคฟ เคนเคฎเคพเคฐเฅ€ Docker file เค•เฅ‡ เค…เค‚เคฆเคฐ,
20:19เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ multiple run commands เคนเฅ‹ เคธเค•เคคเฅ€ เคนเฅˆ,
20:21เค‡เคธเฅ€ เคธเฅ‡ เคฎเคฟเคฒเคคเฅ€ เคœเฅเคฒเคคเฅ€ เคเค• เค”เคฐ
20:23important command เคนเฅ‹เคคเฅ€ เคนเฅˆ, which is called cmd command,
20:25เค…เคฌ run and cmd command,
20:27เคฆเฅ‹เคจเฅ‹เค‚ เค•เคพเคซเฅ€ similar เคธเฅ€ เคฆเคฟเค– เคธเค•เคคเฅ€ เคนเฅˆ,
20:29but the difference is, เค•เคฟ เคนเคฎเคพเคฐเฅ€
20:31Docker file เคนเฅˆ, เค‰เคธเค•เฅ‡ เค…เค‚เคฆเคฐ เคฌเคนเฅเคค
20:33เคธเคพเคฐเฅ€ run commands เคนเฅ‹ เคธเค•เคคเฅ€ เคนเฅˆ, but
20:34เคธเคฟเคฐเฅเคซ เคเค• เคนเฅ€ cmd command เคนเฅ‹เค—เฅ€,
20:36cmd command basically is the instruction
20:39that sells the default command
20:40a container using the image will run,
20:42basically เคนเคฎเคพเคฐเฅ€ Docker image
20:44เคนเคฎ create เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚, เคœเคฌ เค‡เคธ Docker image
20:46เค•เคพ container เคฌเคจเฅ‡เค—เคพ, เคคเฅ‹ container
20:48เค•เฅ‡ start เคนเฅ‹เคจเฅ‡ เคชเคฐ เคเค• single command เคนเฅˆ
20:51เคœเฅ‹ run เคนเฅ‹ เคธเค•เคคเฅ€ เคนเฅˆ, เคตเคนเฅ€ เคนเคฎเคพเคฐเฅ€
20:52cmd command เคนเฅ‹เคคเฅ€ เคนเฅˆ,
20:54for example, if this is our node.js application,
20:57เคนเคฎเคจเฅ‡ เคชเฅ‚เคฐเฅ€ application เค•เฅ‹ setup เค•เคฐ เคฒเคฟเคฏเคพ,
20:59เคชเคฐ setup เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฌเคพเคฆ เค…เคชเคจเฅ€ application
21:00เค•เฅ‹ run เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค, เคนเคฎเฅ‡เค‚ เค…เคชเคจเฅ‡
21:02terminal เค•เฅ‡ เค…เค‚เคฆเคฐ เคฒเคฟเค–เคจเคพ เคชเคฅเคคเคพ เคนเฅˆ,
21:03node.server.js, เคคเฅ‹ เคฏเคน เคเค•
21:05command เคนเฅˆ, เคœเฅ‹ run เค•เคฐเฅ‡เค—เฅ€
21:08เคธเคพเคฐเฅ‡ เค•เฅ‡ เคธเคพเคฐเฅ‡ setup เค•เฅ‹,
21:09so, เคนเคฎเคพเคฐเฅ‡ case เคฎเฅ‡เค‚, this is
21:11going to be our cmd command, cmd
21:13command เคเค• เคนเฅ€ เคนเฅ‹เคคเฅ€ เคนเฅˆ, เค‡เคธเค•เฅ‡
21:14เคธเคพเคฅ เคฎเฅ‡เค‚, we also have expose instruction,
21:16เคœเคฟเคธเคธเฅ‡ เคนเคฎ เค•เคฟเคธเฅ€ เคญเฅ€ port เค•เฅ‹ expose เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚,
21:19we also have env instruction,
21:20เคœเคฟเคธเคธเฅ‡ เคนเคฎ เค…เคชเคจเฅ‡ environment variables เค•เฅ‹ set
21:22เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚, that a running container
21:24will use, เคฎเคคเคฒเคฌ, เค…เคญเฅ€ build เคนเคฎ
21:26image เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚, เคฌเคŸ เคœเคฌ เค‡เคธ image เค•เคพ container
21:28run เคนเฅ‹เค—เคพ, เคคเฅ‹ เค‰เคธ time เคชเคฐ เค•เฅ‰เคจ-เค•เฅ‰เคจ
21:30เคธเฅ‡ variables เคนเฅ‹เคจเฅ‡ เคนเฅ€ เคšเคพเคนเคฟเค, environment variables,
21:32เค‰เคจเฅเคนเฅ‡เค‚ เคนเคฎ เคชเคนเคฒเฅ‡ เคธเฅ‡ เคนเฅ€
21:34เค…เคชเคจเฅ€ docker file เค•เฅ‡ เค…เค‚เคฆเคฐ เค•เฅเค› เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡
21:36define เค•เคฐ เคฐเคนเฅ‡ เคนเฅ‹เคคเฅ‡ เคนเฅˆเค‚, so this is the basic
21:38syntax of writing things in a docker
21:40file,
21:44เค…เคฌ เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เค–เฅเคฆ เค•เฅ€
21:46เค…เคชเคจเฅ€ docker file create เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚, docker
21:48file เค•เฅ‹ เคนเคฎ เค‰เคธเฅ€ application เค•เฅ‡ เค…เค‚เคฆเคฐ create
21:50เค•เคฐเฅ‡เค‚เค—เฅ‡, เคœเคฟเคธเฅ‡ เคนเคฎเฅ‡เค‚ dockerize เค•เคฐเคจเคพ เคนเฅˆ,
21:52so let us create a new file,
22:00and this is how we create
22:02a docker file, you can also install
22:04docker in vs code, เคชเคฐ เค‰เคธเฅ‡
22:06เค…เคญเฅ€ เค•เฅ‡ เคฒเคฟเค เคนเคฎ install เคจเคนเฅ€เค‚ เค•เคฐเคจเฅ‡ เคตเคพเคฒเฅ‡,
22:07so docker file เค•เฅ‡ เค…เค‚เคฆเคฐ เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ เคนเคฎเฅ‡เค‚
22:09base image define เค•เคฐเคจเฅ€ เคนเฅ‹เคคเฅ€ เคนเฅˆ, with the help of from,
22:11so from เค•เฅ‡ เคฌเคพเคฆ เคนเคฎเคพเคฐเฅ€ เคœเฅ‚เคญเฅ€ base image เคนเฅˆ,
22:13เคนเคฎเฅ‡เค‚ เคชเคคเคพ เคนเฅˆ เคนเคฎ node use เค•เคฐเคจเฅ‡ เคตเคพเคฒเฅ‡ เคนเฅˆ,
22:16so เคนเคฎ node.js เค•เฅ€ base image
22:17use เค•เคฐเฅ‡เค‚เค—เฅ‡, which is node, we can also search
22:19for this image on
22:21docker hub,
22:23so if we look for node,
22:25เคคเฅ‹ เคนเคฎเคพเคฐเฅ€ เคชเคพเคธ
22:26เคฏเคน image เคนเฅˆ, เคœเฅ‹ เคนเคฎ basically
22:28เคนเคฎเคพเคฐเฅ€ base image เคฌเคจเฅ‡เค—เฅ‡, เค…เคฌ node เค•เฅ‡ เค…เค‚เคฆเคฐ เคญเฅ€
22:30different different versions available เคนเฅ‹เคคเฅ€ เคนเฅˆ, for example
22:3223.7.0
22:34slim, เคคเฅ‹ เคนเคฎ เคฏเคนเคพเค‚ เคชเคฐ เคšเคพเคนเฅ‡เค‚, เคคเฅ‹ เค…เคชเคจเฅ‡
22:36tags เคญเฅ€ define เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆ, 27.3.0
22:40slim, เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡, I think
22:42this is the same thing, เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡
22:44เคนเคฎ เค…เคชเคจเฅ‡ different different versions เคฏเคพ tags
22:46เค•เฅ‡ เคธเคพเคฅ เคญเฅ€ เค…เคชเคจเฅ€ base image เค•เฅ‹ define เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆ
22:48เค…เคฌ เคฏเคน เคœเฅ‹ base image เค•เฅ‹ define
22:50เค•เคฐเคจเฅ‡ เค•เคพ เคชเฅ‚เคฐเคพ เค•เคพ เคชเฅ‚เคฐเคพ process เคนเฅˆ,
22:52เคฏเคนเฅ€ เคนเคฎเคพเคฐเฅ€ docker images เค•เฅ‡ เค…เค‚เคฆเคฐ
22:54layering create เค•เคฐเคคเคพ เคนเฅˆ, เค•เฅˆเคธเฅ‡ เคนเคฎเคพเคฐเฅ€
22:56layers เค•เฅ‹ create เค•เคฐเคคเคพ เคนเฅˆ, เค‰เคธเฅ‡ เคเค• เคฌเคพเคฐ เคธเคฎเคเคคเฅ‡ เคนเฅˆ
22:58basically, เค…เคญเฅ€ เคนเคฎ เค•เฅเคฏเคพ เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆ
23:00เค…เคญเฅ€ เคนเคฎ เค…เคชเคจเฅ€ เคเค• application เคนเฅˆ
23:02เคฏเคน docker image เคนเฅˆ, เคœเคฟเคธเฅ‡ create เค•เคฐเคจเฅ‡ เค•เฅ€ เค•เฅ‹เคถเคฟเคถ เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆ
23:04เคนเคฎเคพเคฐเฅ€ เคฏเคน application เคนเฅˆ
23:06let us suppose, เค‡เคธเฅ‡ เคนเคฎ เคฆเฅ‡เค‚เค—เฅ‡
23:08version 1.0, เค•เฅเคฏเฅ‹เค‚เค•เคฟ เคฏเคน
23:10เคนเคฎเคพเคฐเฅ€ node.js based application เคนเฅˆ
23:11เค…เคฌ เค‡เคธ node.js based application เค•เฅ‡ เคฒเคฟเค
23:14เคนเคฎเคจเฅ‡ เค•เฅเคฏเคพ เค•เคฟเคฏเคพ เคนเฅˆ, เค…เคชเคจเฅ‡ เคฒเคฟเค
23:15base image define เค•เฅ€ เคนเฅˆ, เค•เคฟ เคนเคฎ
23:18เค…เคชเคจเฅ€ node base image เค•เฅ‹
23:20use เค•เคฐเฅ‡เค‚เค—เฅ‡, เคฏเคน example เค•เฅ‡ เคฒเคฟเค
23:22เคฒเฅ‡ เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚, เค•เคฟ เคนเคฎ เค…เคชเคจเฅ‡
23:23เค‡เคธ tag เค•เฅ‹ use เค•เคฐเคจเฅ‡ เคตเคพเคฒเฅ‡ เคนเฅˆ
23:25which is 2723.7.0
23:29slim
23:29let us suppose, เคนเคฎ node เค•เคพ เคฏเคน version
23:31use เค•เคฐเฅ‡เค‚เค—เฅ‡, เคคเฅ‹ 27.3.0
23:35slim
23:35เคคเฅ‹ เค•เฅเคฏเคพ เคนเคฎ เค•เคน เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เค•เคฟ เคนเคฎเคพเคฐเฅ€ application
23:37เค‡เคธ layer เค•เฅ‡ เคŠเคชเคฐ based เคนเฅ‹เค—เฅ€
23:39and internally เค…เค—เคฐ เคนเคฎ เคฆเฅ‡เค–เฅ‡เค‚
23:42เคคเฅ‹ เคนเคฎเคพเคฐเคพ เคฏเคน
23:43version เคนเฅˆ node เค•เคพ, เคฏเคน
23:45เค…เคชเคจเฅ‡ เค†เคช เคฎเฅ‡เค‚ เคเค• เคฆเฅ‚เคธเคฐเฅ€
23:47base image use เค•เคฐเคคเคพ เคนเฅˆ, which is a
23:49Linux based image, เคคเฅ‹ เคฏเคน
23:51debian เค•เคพ version เคฏเคพ tag
23:53bookwarm slim เค•เฅ‹ use เค•เคฐเคคเคพ เคนเฅˆ
23:55เคฎเคคเคฒเคฌ เค–เฅเคฆ node เค•เฅเคฏเคพ เค•เคฐ เคฐเคนเคพ เคนเฅˆ,
23:57เค–เฅเคฆ node เคเค• เค”เคฐ base image use เค•เคฐ เคฐเคนเคพ เคนเฅˆ
23:59which is a debian
24:01distribution
24:03bookwarm
24:05slim
24:07เคฏเคพ in fact เค‡เคจเค•เฅ‡ เค…เค—เคฐ versions
24:09เค…เคญเฅ€ เค•เฅ‡ เคฒเคฟเค เคนเคŸเคพ เคฆเฅ‡เค‚,
24:11example เค•เฅ‡ เคฒเคฟเค, เคคเฅ‹ เค•เฅเคฏเคพ เคนเคฎ เค•เคน เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เค•เคฟ
24:13เคนเคฎเคพเคฐเฅ€ application เคเค• base image
24:15use เค•เคฐ เคฐเคนเฅ€ เคนเฅˆ, node
24:17node เค…เคชเคจเฅ€ เค†เคช เคฎเฅ‡เค‚ เคเค• เค”เคฐ base image
24:19use เค•เคฐ เคฐเคนเฅ€ เคนเฅˆ, which is a Linux distribution
24:20debian, เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคœเคฌ เคนเคฎ
24:23เค…เคชเคจเฅ€ application เค•เฅ‹ dockerize
24:25เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚, เค‰เคธเค•เฅ€ docker image เคฌเคจเคพเคจเฅ‡ เค•เฅ€
24:27เค•เฅ‹เคถเคฟเคถ เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚, เคคเฅ‹ เคนเคฎเฅ‡เค‚ เคฆเคฟเค–เคฐเคพเค
24:29เค•เคฟ image เค•เคฟเคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ layers เคฎเฅ‡เค‚
24:31เคฌเคฟเคฒเฅเคก เคนเฅ‹เคคเฅ€ เคนเฅˆ, เคนเคฐ image เค•เฅ€
24:32เค…เคชเคจเฅ€ เคเค• base image เคนเฅ‹เคคเฅ€ เคนเฅˆ, base image
24:34เคฎเคคเคฒเคฌ basic เคšเฅ€เคœเฅ‡เค‚ เคœเฅ‹ เคนเคฎเคพเคฐเฅ€
24:36เค‰เคธ image เคธเฅ‡ เค†เคเค‚เค—เฅ€, เคœเฅ‹ already
24:38เคนเคฎเคพเคฐเฅ€ application เค•เฅ‡ เคฒเคฟเค set up เคนเฅ‹เคจเฅ€ เคšเคพเคนเฅ‡
24:43เคคเฅ‹ เคฏเคนเคพเค‚ เคชเคฐ เคญเฅ€ เคนเคฎเคพเคฐเฅ€ เคเค• เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡
24:46layering เคนเฅˆ, เคœเฅ‹ เคšเคฒ เคฐเคนเฅ€ เคนเฅˆ
24:48เคคเฅ‹ we are going to
24:49build our image from note
24:52เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เค…เคชเคจเฅ€ application เค•เฅ‹ run เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค
24:54เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคฆเฅ‹ environment variables เคนเฅˆ
24:56เคœเคฟเคจเค•เฅ‹ เคนเคฎเฅ‡เค‚ define เค•เคฐเคจเคพ เคชเคกเคผเฅ‡เค—เคพ, เคเค• เคนเคฎเคพเคฐเคพ
24:58environment variable เคนเฅˆ, เคนเคฎเคพเคฐเคพ admin username
25:00and เคเค• เคนเคฎเคพเคฐเคพ admin password
25:02เคœเฅ‹ เคนเคฎเฅ‡เค‚ mongodb database
25:04เค•เฅ‡ เค…เค‚เคฆเคฐ help เค•เคฐเฅ‡เค‚เค—เฅ‡, เคคเฅ‹ เค…เคชเคจเฅ‡ environment
25:06variables เค•เฅ‡ เคฒเคฟเค we are going to write
25:08mongodb
25:10username and equal to เค•เคฐเค•เฅ‡
25:12เคนเคฎ เค…เคชเคจเฅ‡ environment variables เค•เฅ€ value เคฆเฅ‡
25:14เคธเค•เคคเฅ‡ เคนเฅˆ, delta
25:16admin and we are going
25:18to define one more environment variable
25:20which is mongodb
25:22password, password เค•เฅ€ value เคนเฅ‹
25:24เคœเคพเคเค—เฅ€ delta
25:26password, เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคฆเฅ‹ environment
25:28variables เคนเคฎเคจเฅ‡ setup เค•เคฐ เคฆเคฟเคฏเฅ‡, เค…เคฌ
25:30เคนเคฎเฅ‡เค‚ command เค•เฅ‹ run เค•เคฐเฅ‡เค‚เค—เฅ‡, command
25:32basically to create some files
25:34or create some folders in our container
25:36เคฏเคน command basically
25:38define เค•เคฐ เคฐเคนเฅ€ เคนเฅˆ เค•เคฟ image เค•เฅˆเคธเฅ‡ เคฌเคจเฅ‡เค—เฅ€
25:40เค”เคฐ เค•เคฒ เค•เฅ‹ เค…เค—เคฐ container run เคนเฅ‹เค—เคพ
25:42เคคเฅ‹ container เค•เฅ‡ เค…เค‚เคฆเคฐ เค•เฅเคฏเคพ-เค•เฅเคฏเคพ เคšเฅ€เคœเคผเฅ‡ เคนเฅ‹เค—เฅ€
25:43เคคเฅ‹ เคนเคฎ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ imagine เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เค•เคฟ
25:45container เค•เฅ‡ เค…เค‚เคฆเคฐ เค•เฅเคฏเคพ-เค•เฅเคฏเคพ เคนเฅ‹เค—เคพ
25:47เคนเคฎเคพเคฐเฅ€ application run เคนเฅ‹เคจเฅ‡ เคธเฅ‡ เคชเคนเคฒเฅ‡
25:48เคนเคฎ เคตเฅ‹ เคธเคพเคฐเฅ€ เคšเฅ€เคœเคผเฅ‡ เคฏเคนเคพเค‚ เคชเคฐ define เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚
25:52เค…เค‚เคฆเคฐ เคนเคฎ เคเค• เคจเคˆ
25:54directory เคœเฅ‹ เคนเฅˆ เค‰เคธเฅ‡ setup เค•เคฐเฅ‡เค‚
25:56and เค‰เคธ directory เค•เคพ เคนเคฎ
25:58เคจเคพเคฎ เคฐเค–เฅ‡เค‚ delta-app
25:59basically เคนเคฎเคพเคฐเฅ‡ container เค•เฅ‡ เค…เค‚เคฆเคฐ
26:02delta เคจเคพเคฎ เค•เฅ‡ เคเค• directory เค†เคœเคพเคเค—เฅ€
26:03เค”เคฐ เค‡เคธ app เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเคฎ เค…เคชเคจเฅ‡
26:05เคธเคพเคฐเฅ‡ เค•เฅ‡ เคธเคพเคฐเฅ‡ files and folders
26:07เคฎเคคเคฒเคฌ เคœเฅ‹ เคฏเคนเคพเค‚ เคชเคฐ available เคนเฅˆ เค‰เคจ เคธเคฌ เค•เฅ‹ เค‡เคธเค•เฅ‡ เค…เค‚เคฆเคฐ copy เค•เคฐเคคเฅ‡เค‚เค—เฅ‡
26:10เคนเคฎ เค‡เคธเฅ‡ app เคจเคพเคฎ เคฆเฅ‡ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
26:12เคฏเคพ เคนเคฎ เค‡เคธเฅ‡ sample เคฏเคพ
26:14node.js, node.app เคจเคพเคฎ เคฆเฅ‡ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
26:16เคœเฅ‹ เคจเคพเคฎ เคนเคฎเคจเฅ‡ เคฏเคนเคพเค‚ เคชเคฐ เคฆเคฟเคฏเคพ เคนเฅˆ
26:17เค‰เคธเค•เฅ‡ เคฌเคพเคฆ we are going to use the copy instruction
26:19copy instruction เค•เคพ เคฎเคคเคฒเคฌ เคนเฅˆ
26:20เคเค• เคฌเคพเคฐ เคฏเคน เคœเฅ‹ folder เคนเฅˆ
26:23เคตเฅ‹ เคนเคฎเคพเคฐเฅ‡ container เค•เฅ‡ เค…เค‚เคฆเคฐ เคฌเคจ เค—เคฏเคพ
26:25เค…เคฌ เคนเคฎเฅ‡เค‚ เค…เคชเคจเฅ‡ local system เค•เฅ€ files เค•เฅ‹
26:27เค…เคชเคจเฅ‡ host system เค•เฅ€ files เค•เฅ‹
26:29เค‡เคธ container เค•เฅ‡ เค…เค‚เคฆเคฐ copy เค•เคฐเคจเคพ เคนเฅˆ
26:31เคคเฅ‹ copy เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค เค•เฅเคฏเฅ‹เค‚เค•เคฟ docker file เค•เคนเคพเค‚ เคชเคฐ เคนเฅˆ
26:33node.app เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเฅˆ
26:34เคคเฅ‹ เคนเคฎ เคธเคฟเคฐเฅเคซ dot เคฒเคฟเค–เฅ‡เค‚เค—เฅ‡
26:36เคฎเคคเคฒเคฌ เคฏเคน เคธเคพเคฐเฅ€ เค•เฅ€ เคธเคพเคฐเฅ€ เคœเฅ‹ files เคนเฅˆ
26:38เคฏเคน เค•เคนเคพเค‚ เคชเคฐ copy เค•เคฐเคจเฅ€ เคนเฅˆ
26:39เคฏเคน เคนเคฎเฅ‡เค‚ delta เค•เฅ‡ เค…เค‚เคฆเคฐ เค…เคชเคจเฅ€ node.app เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเฅ€
26:43เคœเคพเค•เคฐ copy เค•เคฐเคจเฅ€ เคนเฅˆ
26:44in fact this will be hyphen delta hyphen node.app
26:47เคคเฅ‹ เคธเคพเคฐเฅ€ เค•เฅ€ เคธเคพเคฐเฅ€ files เคนเคฎเคพเคฐเฅ‡ host system เคธเฅ‡
26:50เคนเคฎเคพเคฐเฅ‡ docker container เค•เฅ‡ เค…เค‚เคฆเคฐ
26:52เคœเคพเค•เคฐ copy เคนเฅ‹ เคœเคพเคเค‚เค—เฅ€
26:53เค”เคฐ เคเค• เคฌเคพเคฐ เคนเคฎเคพเคฐเฅ€ files copy เคนเฅ‹ เค—เคˆ
26:55node.js already set up เคนเฅˆ
26:57เคธเคพเคฐเฅ€ files เคนเคฎเคจเฅ‡ copy เค•เคฐ เคฒเคฟเค
26:58finally เคนเคฎ เค…เคชเคจเฅ‡ server เค•เฅ‹ start เค•เคฐ เคฆเฅ‡เคคเฅ‡ เคนเฅˆเค‚
27:01เคคเฅ‹ cmd เค•เฅ‡ เค…เค‚เคฆเคฐ
27:02เค…เคชเคจเฅ€ commands เค•เฅ‹ เคฒเคฟเค–เคจเฅ‡ เค•เคพ specific เคคเคฐเฅ€เค•เคพ เคนเฅ‹เคคเคพ เคนเฅˆ
27:04basically we write cmd
27:06and เค‰เคธเค•เฅ‡ เคฌเคพเคฆ
27:07เคนเคฎ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เค…เคชเคจเฅ€ เคธเคพเคฐเฅ€ เค•เฅ‡ เคธเคพเคฐเฅ€
27:09individual commands เค•เฅ‹ separate เค•เคฐเคคเฅ‡ เคนเฅˆเค‚
27:11in the form of strings
27:12เคคเฅ‹ เค…เคชเคจเฅ‡ เค‡เคธ array เค•เฅ‡ เค…เค‚เคฆเคฐ
27:13เคธเคฌเคธเฅ‡ เคชเคนเคฒเฅ‡ เคนเคฎ pass เค•เคฐเฅ‡เค‚เค—เฅ‡
27:15node, เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เคนเคฎ pass
27:17เค•เคฐเฅ‡เค‚เค—เฅ‡ server.js
27:19เค”เคฐ เคฏเคน เคœเฅ‹ server.js เคนเฅ‹เค—เคพ
27:21เคฏเคน เคนเคฎเฅ‡เค‚ เคชเคคเคพ เคนเฅ€ เค•เคฟ already เคนเคฎเคพเคฐเฅ‡
27:23docker container เค•เฅ‡ เค…เค‚เคฆเคฐ เค† เคšเฅเค•เคพ เคนเฅˆ
27:25docker container เค•เฅ‡ เค…เค‚เคฆเคฐ server.js
27:27เค•เคนเคพเค‚ เคชเคฐ setup เคนเฅ‹เค•เคฐ เค†เค
27:28docker server.js
27:31delta folder เค•เฅ‡ เค…เค‚เคฆเคฐ
27:32node app folder เค•เฅ‡ เค…เค‚เคฆเคฐ available เคนเฅ‹เค—เคพ
27:35เคคเฅ‹ เคตเฅ‹ folder structure เคœเฅ‹ เคนเฅˆ
27:37เคตเฅ‹ เคนเคฎเฅ‡เค‚ เคฏเคนเคพเค‚ เคชเคฐ define เค•เคฐเคจเคพ เคชเคกเคผเฅ‡เค—เคพ
27:38เคฏเคนเคพเค‚ เคชเคฐ เคคเฅ‹ เคนเคฎ simply server.js
27:40run เค•เคฐ เคฆเฅ‡เคคเฅ‡ เคนเฅˆเค‚ visual studio code เคฎเฅ‡เค‚ เค•เฅเคฏเฅ‚เค‚เค•เคฟ เคนเคฎ
27:42node app เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเฅ€ เคนเฅˆเค‚ เคชเคฐ เคœเคฌ เคนเคฎ
27:44container เค•เฅ‡ เค…เค‚เคฆเคฐ เค‡เคธ command เค•เฅ‹ run เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚
27:46เคคเฅ‹ เค…เคญเฅ€ เคนเคฎ เค…เคชเคจเฅ€ home directory เค•เฅ‡ เค…เค‚เคฆเคฐ เคนเฅˆเค‚
27:49เค…เคญเฅ€ เคนเคฎ เค‡เคธ node app
27:50folder เค•เฅ‡ เค…เค‚เคฆเคฐ เคจเคนเฅ€เค‚ เคนเฅˆ เคคเฅ‹ เค‡เคธเคฒเคฟเค เคฏเคนเคพเค‚ เคชเคฐ
27:52เค…เคชเคจเฅ‡ folder เค•เคพ เคนเคฎเฅ‡เค‚ เคœเฅ‹ complete path เคนเฅˆ
27:54เค‰เคธเฅ‡ define เค•เคฐเคจเคพ เคชเคกเคผเฅ‡เค—เคพ to run
27:56our container. เคคเฅ‹ this is how
27:58we dockerize our application
28:00เคฏเคน basically เคธเคพเคฐเฅ€ เคนเคฎเคจเฅ‡ instructions
28:02เคฒเคฟเค– เคฆเฅ€ เคนเฅˆ to convert our node
28:04application to a docker image
28:06เค…เคฌ เค‡เคธ docker file เค•เฅ‹ เคนเคฎเคจเฅ‡ create เค•เคฐ เคฒเคฟเคฏเคพ เคนเฅˆ
28:08เค‡เคธเฅ‡ run เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค we basically
28:10run the docker build command
28:12เคœเฅ‹ เคนเคฎเคพเคฐเฅ€ application เค•เฅ‹ run เค•เคฐเฅ‡เค—เฅ€
28:13เคนเคฎ simply เค…เคชเคจเฅ€ app เค•เคพ เคจเคพเคฎ
28:15define เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เคฏเคน basically เคนเคฎเคพเคฐเฅ€ docker image
28:17เค•เคพ เคจเคพเคฎ เคนเฅ‹เค—เคพ เค”เคฐ เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เคธเคพเคฅ เคฎเฅ‡เค‚
28:19เค•เฅ‹เคˆ version เคญเฅ€ define เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
28:21hyphen t stands for tag เค…เค—เคฐ เคนเคฎ
28:23เค…เคชเคจเฅ€ image เค•เฅ‡ เคธเคพเคฅ เคเค• tag เคฆเฅ‡เคจเคพ เคšเคพเคนเคคเฅ‡ เคนเฅˆเค‚
28:25เค”เคฐ dot เคธเฅ‡ เคนเคฎ เค…เคชเคจเฅ€ file เค•เฅ‹ select
28:27เค•เคฐเคคเฅ‡ เคนเฅˆเค‚ เคคเฅ‹ เคฏเคนเคพเค‚ เคชเคฐ เค† เคœเคพเคคเฅ‡ เคนเฅˆเค‚
28:29in the terminal เคนเคฎ basically docker
28:31build เค•เคฐเฅ‡เค‚เค—เฅ‡ docker build
28:33hyphen t เคนเคฎ เค…เคชเคจเฅ€ app เค•เฅ‹
28:36เคจเคพเคฎ เคฆเฅ‡เค‚เค—เฅ‡ let's call it app
28:37one point เคฏเคพ let's call it
28:39node app
28:41one point o เค‰เคธเค•เคพ version เคนเฅ‹ เค—เคฏเคพ
28:43and เค‰เคธเค•เฅ‡ เคฌเคพเคฆ dot เค•เคฐเค•เฅ‡ เคนเคฎ
28:45เค…เคชเคจเฅ‡ files เค•เฅ‹ select เค•เคฐเฅ‡เค‚เค—เฅ‡
28:47เค…เคฌ เค•เฅเคฏเฅ‚เค‚เค•เคฟ เคนเคฎ already node app folder เค•เฅ‡
28:49เค…เค‚เคฆเคฐ เคนเฅ€ เคนเฅˆเค‚ เคคเฅ‹ automatically docker
28:51เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค is docker file เค•เฅ‹ detect เค•เคฐ เคฒเฅ‡เค—เคพ
28:53เค”เคฐ เคนเคฎเคพเคฐเฅ‡ เคฒเคฟเค docker image เค•เฅ‹ build เค•เคฐ เคฆเฅ‡เค—เคพ
28:55let us run this command and it
28:57has started the build process
28:59so our image has been successfully
29:01exported and let
29:03us clear this and เค…เคฌ เค…เค—เคฐ เคนเคฎ
29:05check เค•เคฐเฅ‡เค‚ for docker images
29:06เคคเฅ‹ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เคเค• new image เค† เค—เคˆ เคนเฅˆ
29:09which is node app
29:11version 1.0 and
29:13เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เค…เคฌ เค‡เคธ image เค•เคพ เคญเฅ€
29:14docker container run เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
29:16เคคเฅ‹ if I do docker
29:18run เค…เคชเคจเฅ€ image
29:21เค•เคพ เคจเคพเคฎ which is node app and
29:23เค‰เคธเค•เคพ version 1.0
29:24let us run it
29:28and เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡
29:29เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ เค† เค—เคฏเคพ
29:30server running on port 3030
29:32เคนเคฎเคพเคฐเฅ€ เคœเฅ‹ node.js เค•เฅ€ application เคฅเฅ€
29:34เคตเฅ‹ docker image เค•เฅ‡ เค…เค‚เคฆเคฐ convert เคนเฅเคˆ
29:35image เคธเฅ‡ เคนเคฎเคจเฅ‡ container run เค•เคฟเคฏเคพ
29:37เค”เคฐ container เค•เฅ‡ เค…เค‚เคฆเคฐ
29:39automatically เคนเคฎเคพเคฐเคพ เคœเฅ‹ server เคนเฅˆ
29:40เคตเฅ‹ เคธเฅเคŸเคพเคฐเฅเคŸ เคนเฅ‹ เค—เคฏเคพ เคนเฅˆ
29:41เค…เคฌ เคœเคจเคฐเคฒเฅ€ organizations เค•เฅ‡ เค…เค‚เคฆเคฐ
29:43when we dockerize our application
29:44เคคเฅ‹ เค‰เคธเค•เฅ‡ เค…เค‚เคฆเคฐ เคนเคฎเฅ‡เค‚
29:45as such เค…เคชเคจเฅ€ เคœเฅ‹ docker file เคนเฅˆ
29:46เคฏเคพ เคซเคฟเคฐ mongo.yaml file
29:48เค‡เคจเฅเคนเฅ‡เค‚ เค…เคชเคจเฅ‡ image เค•เฅ‡ เค…เค‚เคฆเคฐ
29:53เคฌเคพเค•เฅ€ เคธเคพเคฐเฅ€ files and folders เค•เฅ‹
29:54separate folder เค•เฅ‡ เค…เค‚เคฆเคฐ เคกเคพเคฒ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
29:56เค”เคฐ เค‰เคธ folder เค•เฅ‹ เคนเคฎ เค…เคฒเค— เคธเฅ‡ dockerize เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
29:59by removing this file and this file
30:01เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เค…เคชเคจเฅ€ node modules เค•เฅ‹ เคญเฅ€
30:03remove เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
30:03เค…เค—เคฐ เคนเคฎ เคœเคฌ dockerize เค•เคฐ เคฐเคนเฅ‡เค‚ เค…เคชเคจเฅ€ application เค•เฅ‹
30:06เคคเคฌ เคนเคฎเคจเฅ‡ เค…เค—เคฐ node modules เค•เฅ‹ include เคจเคนเฅ€เค‚ เค•เคฟเคฏเคพ เคนเฅˆ
30:09เคคเฅ‹ เค‰เคธ case เคฎเฅ‡เค‚ เคนเคฎเฅ‡เค‚ เค‡เคนเคพเค‚ เคชเคฐ
30:11traditional instruction เคฒเคฟเค–เคจเฅ€ เคชเคกเคผเฅ‡เค—เฅ€
30:12which will be run
30:15npm install
30:16เคœเคฟเคธเค•เคพ เคฎเคคเคฒเคฌ เคนเฅˆ เค•เคฟ เค…เคญเฅ€ เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ
30:18เค…เคญเฅ€ เคœเฅ‹ container เคฏเคนเคพเค‚ เคคเค• setup เคนเฅเค† เคนเฅ‹เค—เคพ
30:20เค‰เคธเค•เฅ‡ เค…เค‚เคฆเคฐ เค…เค—เคฐ node modules เคจเคนเฅ€เค‚ เคนเฅˆ
30:22เคคเฅ‹ node modules เค•เฅ‹ เคนเคฎเฅ‡เค‚ เคชเคนเคฒเฅ‡
30:24install เค•เคฐเคจเคพ เคชเคกเคผเฅ‡เค—เคพ before we start our server
30:27เคคเฅ‹ เคฏเคน instruction important เคนเฅ‹ เคœเคพเคเค—เฅ€
30:29เค…เค—เคฐ node modules เคจเคนเฅ€เค‚ เคนเฅ‹เคคเฅ‡
30:30เคชเคฐ เคœเคฌ เคนเคฎเคจเฅ‡ dockerize เค•เคฟเคฏเคพ เคฅเคพ
30:31we have added the node modules, เคคเฅ‹ I hope เค•เคฟ
30:33เคฏเคนเคพเค‚ เคคเค• เคฎเฅ‡เค‚ clearly เคธเคฎเค เคฎเฅ‡เค‚ เค†เคฏเคพ เคนเฅ‹เค—เคพ เค•เคฟ เค•เคฟเคธ เคคเคฐเฅ€เค•เฅ‡
30:35เคธเฅ‡ เคนเคฎ เค…เคชเคจเฅ€ node JS application เค•เฅ‹ dockerize
30:37เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚, we can convert it into a docker image
30:39and then we can also run containers
30:41using the same image
30:47next we are going to learn about how to publish
30:49an existing docker image onto docker hub
30:51เคคเฅ‹ เค‰เคธเค•เฅ‡ เคฒเคฟเค we are going to go on
30:53docker hub and we are going to create and
30:55sign up a new account, so this is
30:57the account that we have created, we can also
30:59visit our profile under the my profile
31:01option and เคฏเคนเคพเค‚ เคชเคฐ เคœเคพเค•เคฐ
31:03basically we have to go on to this
31:05repositories tab, เคœเคนเคพเค‚ เคชเคฐ
31:07we will create a new repository
31:08this is going to be very similar to how we
31:11sign up on GitHub and how we create a new
31:13repo there, เค‰เคธเฅ€ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคฏเคนเคพเค‚
31:15เคชเคฐ เคนเคฎเฅ‡เค‚ เคเค• new repository create
31:16and we have to give it a name, we can give it any
31:19name, so let us give it a name of
31:21my node app, we can
31:23also give it a short description if we want
31:25and we are going to create a public repository
31:27so let us create this
31:29finally when it's done, we have
31:31created this repo for us
31:33เค…เคฌ เคนเคฎ เค…เคชเคจเฅ‡ host system เคชเคฐ เคœเฅ‹ เคญเฅ€ เคนเคฎเคพเคฐเฅ€ เคชเคพเคธ
31:35docker image เคนเฅˆ เค‰เคธเฅ‡ เคฏเคนเคพเค‚ เคชเคฐ เค‡เคธ
31:37repository เค•เฅ‡ เค…เค‚เคฆเคฐ เคชเฅเคถ เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
31:39เคชเฅเคถ เค•เคฐเคจเฅ‡ เคธเฅ‡ เคชเคนเคฒเฅ‡ we need to ensure that
31:41เคนเคฎเคพเคฐเฅ€ เคœเฅ‹ เคญเฅ€ docker image เคนเฅˆ เคœเคฟเคธเฅ‡ เคนเคฎ เคชเฅเคถ เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚
31:44เค‰เคธเค•เคพ เคฏเคนเฅ€ same name เคนเฅ‹เคจเคพ เคšเคพเคนเคฟเค
31:45although เคนเคฎเคจเฅ‡ เคฏเคนเคพเค‚ เคชเคฐ as such เค‡เคธเฅ‡
31:47เค•เฅ‹เคˆ tag name เคจเคนเฅ€เค‚ เคฆเคฟเคฏเคพ เคนเฅˆ, so the tag
31:49will by default be latest, but we have
31:51to create a new image on
31:53our local host machine with this same name
31:55เคคเฅ‹ เค‡เคธ name เค•เฅ‹ เคเค• เคฌเคพเคฐ copy เค•เคฐ เคฒเฅ‡ เคฐเคนเฅ‡ เคนเฅˆเค‚
31:57and let us come here, เคนเคฎ เค…เคชเคจเฅ€ same
31:59node application เค•เฅ‹ เคฆเฅเคฌเคพเคฐเคพ
32:01เค•เคจเฅเค—เคŸ เค•เคฐเคจเฅ‡ เคตเคพเคฒเฅ‡ เคนเฅˆเค‚ into a docker image, but this
32:03time with a different name, เคคเฅ‹ เค‰เคธเค•เฅ‡ เคฒเคฟเค
32:05we can write docker
32:07build hyphen t
32:09and this is the name that
32:11we actually want for our application
32:13dot and เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ we'll
32:15start building a brand new image
32:17เคœเคฟเคธเฅ‡ เคนเคฎ finally push เค•เคฐเฅ‡เค‚เค—เฅ‡ docker hub เคชเคฐ
32:19เคคเฅ‹ finally เคนเคฎเคพเคฐเฅ€ image ready เคนเฅ‹ เค—เคˆ เคนเฅˆ
32:21we can also go and see the image
32:23on docker desktop and
32:25เค…เคฌ เคนเคฎ เค‡เคธ image เค•เฅ‹ push เค•เคฐเคจเฅ‡ เคตเคพเคฒเฅ‡
32:27on to docker hub and push เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค
32:29we need to use the docker push
32:31command, we need to do docker push and
32:33เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เค…เคชเคจเคพ image name, เค…เคฌ docker
32:35เคชเคฐ เค…เคชเคจเฅ€ image เค•เฅ‹ push เค•เคฐเคจเฅ‡ เคธเฅ‡ เคชเคนเคฒเฅ‡ we need to ensure
32:37เคนเคฎเคจเฅ‡ เค…เคชเคจเฅ‡ terminal เคชเคฐ same username
32:39and password เค•เฅ‡ เคธเคพเคฅ login เค•เคฟเคฏเคพ เคนเฅˆ, เคœเคฟเคธเค•เฅ‹
32:41เคนเคฎ docker hub เค•เฅ‡ เค‰เคชเคฐ use เค•เคฐ เคฐเคนเฅ‡ เคนเฅˆเค‚
32:44เคนเคฎเคพเคฐเฅ‡ เคชเคพเคธ command เคนเฅ‹เคคเฅ€ เคนเฅˆ
32:45docker login, but since I am already logged in
32:48I need to log out first
32:49so docker logout เคธเฅ‡ เคนเคฎ เค•เคญเฅ€ เคญเฅ€ เค…เคชเคจเฅ€
32:51terminal เคธเฅ‡ logout เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
32:52เคคเฅ‹ this will lead to the removal of
32:55login credentials and เค‰เคธเค•เฅ‡ เคฌเคพเคฆ
32:57we can do docker login
32:58เค…เคฌ login เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฒเคฟเค docker เคนเคฎเฅ‡เค‚
33:00two different options เคฆเฅ‡เคคเคพ เคนเฅˆ
33:01first option is
33:02เค•เคฟ เคฏเคพ เคคเฅ‹ เคนเคฎ เค‡เคธ command เค•เฅ‹
33:04use เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚, เคœเคฟเคธเคธเฅ‡ เคนเคฎ
33:05username and password เคธเฅ‡ sign in เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
33:07เคนเคฎเฅ‡เค‚ เคตเคนเฅ€ same username and password
33:09use เค•เคฐเคจเคพ เคนเฅˆ, เคœเคฟเคธเฅ‡ เคนเคฎเคจเฅ‡
33:10docker hub เคชเคฐ use เค•เคฟเคฏเคพ เคฅเคพ
33:11and the second way is เค•เคฟ docker
33:12เคนเคฎเฅ‡เค‚ เคเค• special code เคฆเฅ‡เคคเคพ เคนเฅˆ
33:14เคœเคฟเคธเฅ‡ เคนเคฎ เค…เคชเคจเฅ‡ เค‰เคธ browser เคชเคฐ
33:15เค‡เคธ link เค•เฅ‹ เค–เฅ‹เคฒ เค•เคฐ
33:17enter เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
33:18เคœเคนเคพเค‚ เคชเคฐ เคนเคฎเคจเฅ‡
33:30เคคเฅ‹ เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡
33:31we are now logged in in the terminal
33:33and finally the login was successful
33:35and we are logged in
33:37เคคเฅ‹ เค‡เคธเฅ‡ clear เค•เคฐ เคฒเฅ‡เคคเฅ‡ เคนเฅˆเค‚
33:38and เค…เคฌ เคนเคฎ finally เค•เคฐเฅ‡เค‚เค—เฅ‡ docker push
33:40เคœเฅ‹ เคญเฅ€ เคนเคฎเคพเคฐเฅ€ image เค•เคพ เคจเคพเคฎ เคฅเคพ
33:42which was dev apna college
33:44this is basically the username
33:46and เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เคนเคฎเคพเคฐเฅ€ image เค•เคพ เคจเคพเคฎ
33:48because there is no tag
33:49เคนเคฎ เค‰เคธเฅ‡ skip เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
33:50and directly เคนเคฎ เค•เคฐเฅ‡เค‚เค—เฅ‡ push
33:52เคคเฅ‹ the image will get pushed
33:54onto the repository
33:55and เคตเฅ‹ เคœเฅ‹ layer by layer
33:57pushing เคนเฅ‹เคคเฅ€ เคนเฅˆ
33:58เคตเฅ‹ start เคนเฅ‹ เคšเฅเค•เฅ€ เคนเฅˆ
33:59and finally we have pushed the entire image
34:01onto docker hub
34:02เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ เคฏเคนเคพเค‚ เคชเคฐ เค†เค•เคฐ refresh เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
34:05and refresh เค•เคฐเคจเฅ‡ เค•เฅ‡ เคฌเคพเคฆ
34:07we can now see our image
34:09which has a tag of latest
34:11and เคนเคฎ เคšเคพเคนเฅ‡เค‚ เคคเฅ‹ tags เคฎเฅ‡เค‚ เคœเคพเค•เคฐ
34:13เคฏเคนเคพเค‚ เคชเคฐ check เคญเฅ€ เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
34:15so this is our image size
34:16and เค•เคญเฅ€ เคญเฅ€ เค…เค—เคฐ เค‡เคธ same image เค•เฅ‹
34:18เค…เคฌ เคนเคฎ เค…เคชเคจเฅ‡ system เคชเคฐ local system เคชเคฐ
34:21เคชเฅเคฒ เค•เคฐเคจเคพ เคšเคพเคนเคคเฅ‡ เคนเฅˆเค‚
34:22เคคเฅ‹ เคนเคฎ use เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚ เค‡เคธ command เค•เคพ
34:24basically the docker image that we built on our local system
34:27is now publicly available
34:28we can share this image or the repo link
34:30with other people who want to use the same application
34:32onto their system
34:33เค‡เคธ เคคเคฐเฅ€เค•เฅ‡ เคธเฅ‡ เคนเคฎ docker hub เคชเคฐ เค…เคชเคจเฅ€ custom images เค•เฅ‹
34:36push เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
34:36and เคซเคฟเคฐ เค‰เคธเค•เฅ‡ เคฌเคพเคฆ เคนเคฎเฅ‡เค‚ local system เคชเคฐ
34:38as such เค…เคชเคจเฅ€ application เคฐเค–เคจเฅ‡ เค•เฅ€ เคœเคฐเฅ‚เคฐเคค เคจเคนเฅ€เค‚ เคนเฅˆ
34:40เคนเคฎ เค•เคฟเคธเฅ€ เคญเฅ€ time เค‰เคธ docker image เค•เฅ‹
34:42pull เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚ system เคชเคฐ
34:43and เค…เคชเคจเฅ€ เค‰เคธ same node.js application เค•เฅ‹ run เค•เคฐ เคธเค•เคคเฅ‡ เคนเฅˆเค‚
34:46inside a container
34:47you
Comments

Recommended