Home
Categories
EXPLORE
True Crime
Comedy
Business
Society & Culture
History
Sports
Health & Fitness
About Us
Contact Us
Copyright
© 2024 PodJoint
00:00 / 00:00
Sign in

or

Don't have an account?
Sign up
Forgot password
https://is1-ssl.mzstatic.com/image/thumb/Podcasts116/v4/b4/ec/e0/b4ece073-38c4-9856-48f0-1c3b53b6e5cd/mza_7307790436765661670.jpg/600x600bb.jpg
The Cloud Seminar
Nilesh from Cloud Genius®
12 episodes
15 hours ago
Summary Confidently ship production cloud services like a genius ✨
Show more...
Technology
RSS
All content for The Cloud Seminar is the property of Nilesh from Cloud Genius® and is served directly from their servers with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Summary Confidently ship production cloud services like a genius ✨
Show more...
Technology
https://is1-ssl.mzstatic.com/image/thumb/Podcasts116/v4/b4/ec/e0/b4ece073-38c4-9856-48f0-1c3b53b6e5cd/mza_7307790436765661670.jpg/600x600bb.jpg
Running Custom Images in Any Cloud #0005
The Cloud Seminar
2 years ago
Running Custom Images in Any Cloud #0005

Summary:

In this session, I build a trivial but custom docker image, push it to a custom self-hosted registry and also to docker hub.

Next, I create a machine in some arbitrary cloud, (I used Hetzner), get it pre-installed with Ubuntu 22.04. Then refer to the official docker install installation to properly setup docker on that machine. Next, I pull that custom image from registry, install, and run the container. Test to verify.

AI Generated Transcript

WEBVTT

00:00.000 --> 00:04.960
We are going to continue our discussion of the last time,

00:04.960 --> 00:08.480
which is, I think last time we discussed creating

00:08.480 --> 00:10.800
Docker file and Docker images and building them up and

00:10.800 --> 00:14.560
putting them in a Docker registry.

00:14.560 --> 00:17.040
So you saw that in a live session the last time it is

00:17.040 --> 00:23.640
recorded and it's available to you on what is we call Spotify.

00:23.640 --> 00:26.080
If you go to Spotify on a particular location,

00:26.080 --> 00:29.720
you will find the Cloud Seminar and it looks like this.

00:29.720 --> 00:31.960
I'm opening up Spotify right now.

00:31.960 --> 00:36.480
That's how it looks like and on a screen it looks like this.

00:36.480 --> 00:38.980
So that's the location where you can find.

00:38.980 --> 00:42.400
You will probably find links for this on my website.

00:42.400 --> 00:46.480
Last time we were discussing this thing called building custom images.

00:46.480 --> 00:48.640
So that thing that you see,

00:48.640 --> 00:50.720
by the way, this video of me,

00:50.720 --> 00:52.640
I think I should just disappear.

00:52.640 --> 00:57.040
So I will hide myself completely as opposed to obstructing the screen.

00:57.040 --> 01:00.800
Now what are you seeing is this series of videos here.

01:00.800 --> 01:02.800
They are on Spotify and yes,

01:02.800 --> 01:04.480
Spotify does have videos.

01:04.480 --> 01:06.640
So that's what these are videos by the way, just so you know.

01:06.640 --> 01:11.200
So that's where the new recording will pop up at the end of 24 hours from now.

01:11.200 --> 01:15.080
You will see that happening. It will go here.

01:15.080 --> 01:17.760
Next, what did we do the last time?

01:17.760 --> 01:23.880
We will continue that same thing and extend it and take it to a real Cloud this time.

01:23.880 --> 01:27.720
Last time we ran it locally completely in my office right here,

01:27.720 --> 01:31.040
and I'll describe to you summary what did we do last time,

01:31.040 --> 01:33.720
and then I'll do the thing for today.

01:33.720 --> 01:35.540
I want to repeat that.

01:35.540 --> 01:38.460
If you have any question at any time, just speak.

01:38.460 --> 01:42.800
No issues. There is no exam,

01:42.800 --> 01:46.880
as you know, so you can just speak to me like a friend and ask the question.

01:46.880 --> 01:49.800
Anything. No problem at all.

01:49.800 --> 01:53.360
Anytime. You can interrupt me and I welcome that.

01:53.360 --> 01:56.120
In fact, if you don't interrupt me, I feel bad.

01:56.120 --> 01:59.760
I feel that I'm not communicating or that you're not understanding.

01:59.760 --> 02:00.880
That's a concern I have.

02:00.880 --> 02:05.920
So please tell me that you get it or tell me that you don't get it either way.

02:05.920 --> 02:11.880
So begin. So what do we have in my hand is a computer here.

02:11.880 --> 02:14.000
I call it my Macintosh.

02:14.000 --> 02:16.720
This runs the Mac OS.

02:16.720 --> 02:18.640
That's what I'm using right now.

02:18.640 --> 02:22.440
I use this to connect to another machine that runs Docker.

02:22.440 --> 02:28.120
This machine, I actually call it iMac because it is an iMac,

02:28.120 --> 02:32.320
but it runs Linux and it also has Docker.

02:32.320 --> 02:34.760
So that's the machine I've been using all along in

02:34.760 --> 02:37.640
all these sessions like three or four sessions up till now.

02:37.640 --> 02:39.880
We are doing a particular exercise.

02:39.880 --> 02:44.600
That exercise is available in a Git repository publicly.

02:44.600 --> 02:47.960
So I'm going to go there and show you,

02:47.960 --> 02:51.320
and you can actually pull it up right there.

02:51.320 --> 02:54.280
That's the Git repo and I'll paste a link for you in the chat.

02:54.280 --> 02:57.360
So you have it. Where is the chat?

02:57.360 --> 03:01.280
There. So you have the link in the chat and I'll also post it

03:01.280 --> 03:07.520
outside on the Spotify podcast, video podcast.

03:07.520 --> 03:10.600
So that's the link which has the code that I will be

03:10.600 --> 03:15.040
using on this Git repository.

03:15.640 --> 03:20.400
That code is available somewhere here already.

03:20.400 --> 03:22.960
On this Linux machine.

03:22.960 --> 03:25.360
So I'm sitting here and I will be

03:25.360 --> 03:27.600
connecting there and then work here.

03:27.600 --> 03:31.360
Then today, we'll extend whatever we build here,

03:31.360 --> 03:33.560
like Docker image and something,

03:33.560 --> 03:36.600
we'll take that application that be a very tiny,

03:36.600 --> 03:38.620
simple example application, we'll take it,

03:38.620 --> 03:43.320
but then take it to a real cloud, some cloud.

03:43.320 --> 03:45.720
You get to choose which cloud you want me to use.

03:45.720 --> 03:48.720
So you can just tell me, go to that cloud, we'll go there.

03:48.720 --> 03:51.240
And run the same thing.

03:51.240 --> 03:52.680
Somebody is showing up.

03:52.680 --> 03:53.920
So I'm going to let them in.

03:53.920 --> 03:58.200
Somebody just showed up and I admitted them in.

03:58.200 --> 04:01.960
So that's the scenario today.

04:01.960 --> 04:06.440
Here's what we will do is what I just described.

04:06.440 --> 04:10.080
I'm checking my video layout just a minute.

04:10.080 --> 04:12.160
I think it is good.

04:12.160 --> 04:22.000
So tell me if this is better or this.

04:22.000 --> 04:23.160
Tell me what do you prefer?

04:23.160 --> 04:28.840
That's the question. So this is A and then I'll show you now B.

04:28.840 --> 04:32.240
So this is B. What do you prefer?

04:32.240 --> 04:40.040
That's the question. B or A. Any comments?

04:40.040 --> 04:43.920
Do you see anything changing at all?

04:43.920 --> 04:47.280
Let me show you A again.

04:47.280 --> 04:52.960
This is A. I'm going to change it now.

04:52.960 --> 04:58.640
This is B. Do you see anything different at all?

04:58.640 --> 05:02.800
No difference? Okay, fine.

05:02.800 --> 05:06.600
Then I think it's just what I see here is something different.

05:06.600 --> 05:09.040
So the layout is different for some reason.

05:09.040 --> 05:11.920
So let's recap quickly.

05:11.920 --> 05:20.120
We have this code sitting right here and I will hold on.

05:20.120 --> 05:23.000
Is somebody projecting something or what?

05:23.000 --> 05:28.920
Somebody started projecting or maybe I'm confused.

05:28.920 --> 05:32.520
Are you seeing my screen or something else?

05:32.520 --> 05:42.200
Exit Spotlight and check Spotlight for everyone.

05:42.200 --> 05:50.240
Me. Hey Sanjay, do you see my screen?

05:50.240 --> 05:52.320
Yeah, I see yellow screen.

05:52.320 --> 05:54.240
Yeah, okay, good, good, good, good.

05:54.240 --> 05:55.480
Yellow not red.

05:55.480 --> 05:56.680
Yeah, nice, nice.

05:56.680 --> 06:02.760
So let's continue.

06:02.760 --> 06:08.640
So let's bring up that terminal, the command line, the code.

06:08.640 --> 06:11.920
So here is the code command line coming up,

06:11.920 --> 06:13.800
and here is the editor for that.

06:13.800 --> 06:16.800
So I'm going to open the editor right here,

06:16.800 --> 06:18.560
bring it to the side,

06:18.560 --> 06:22.080
and this is the terminal and this is the code editor.

06:22.080 --> 06:23.640
As you probably know,

06:23.640 --> 06:30.600
this is VS Codeium and I'm going to connect to that iMac that I mentioned.

06:30.600 --> 06:32.600
This is the Mac which contains,

06:32.600 --> 06:37.640
this is the Linux machine that contains my code and I will go there,

06:37.640 --> 06:39.960
and that's what I've connected to.

06:39.960 --> 06:44.480
That code that we are using is called Docker files,

06:44.480 --> 06:47.360
and for clarity,

06:47.360 --> 06:49.360
I can delete the whole thing and bring it up again.

06:49.360 --> 06:51.440
I think that works better for most people

06:51.440 --> 06:53.880
because you don't know what I have in my computer

06:53.880 --> 06:55.640
and even I don't remember what I have.

06:55.640 --> 06:59.240
So I'll take this code link from here,

06:59.240 --> 07:03.200
from GitHub, and go to that computer here,

07:03.200 --> 07:07.880
that iMac computer that I mentioned, like that,

07:07.880 --> 07:12.200
and there I have this folder called Docker files.

07:13.200 --> 07:17.920
I will completely erase it, so it's gone.

07:17.920 --> 07:20.520
You can see that it disappears in

07:20.520 --> 07:23.480
the screen on the right half.

07:23.480 --> 07:25.760
There is no Docker files anymore.

07:25.760 --> 07:30.040
I'm going to now clone it, like that.

07:30.040 --> 07:32.320
So it comes down, brings the whole thing,

07:32.320 --> 07:38.000
and it should show up in that code editor somewhere here.

07:38.000 --> 07:41.200
Where is that? Docker files showed up right there.

07:41.200 --> 07:43.920
So that's the exercise that we will be using today,

07:43.920 --> 07:45.120
like we did last time,

07:45.120 --> 07:49.400
and continue our discussion around what we did,

07:49.400 --> 07:51.440
extending what we did last time,

07:51.440 --> 07:55.040
is to build an image and then run it in a real Cloud.

07:55.040 --> 07:56.160
That's the idea today.

07:56.160 --> 07:59.520
So let's see what did we do last time.

07:59.520 --> 08:00.840
If I remember right,

08:00.840 --> 08:05.720
we were dealing with something like one of these files.

08:05.720 --> 08:09.000
What was it? Let me cross-check.

08:09.000 --> 08:10.760
Let me cross-check and I'll identify

08:10.760 --> 08:12.440
exactly what we are going to do today so that

08:12.440 --> 08:15.720
you will go and be able to do the same thing.

08:15.720 --> 08:19.560
So let's go find it. Not this,

08:19.560 --> 08:22.840
not this, not this.

08:22.840 --> 08:25.560
Is it in step-by-step? I think so.

08:25.560 --> 08:28.480
I think this is it.

08:28.840 --> 08:35.240
So this is something we can use.

08:35.240 --> 08:37.320
But I think the last time, if you remember,

08:37.320 --> 08:38.720
we created a very simple,

08:38.720 --> 08:44.560
small NGINX server using a custom-created Docker file.

08:44.560 --> 08:46.000
So I think that's what we should do

08:46.000 --> 08:47.560
with the simple understanding of

08:47.560 --> 08:50.040
clarity and build everything from scratch

08:50.040 --> 08:53.280
with nothing in our hand to begin with, completely empty.

08:53.280 --> 08:55.360
So here I go with empty screen,

08:55.360 --> 08:58.680
create a new file, and I'll save it as empty.

08:58.680 --> 09:04.800
I'll call it Docker something, test, I think.

09:04.800 --> 09:07.480
Let me give it a new name.

09:07.480 --> 09:09.800
So I'll create a folder here.

09:09.800 --> 09:13.160
Let's call that folder today's date,

09:13.160 --> 09:15.840
May 16th. Today is May 16th.

09:15.840 --> 09:19.160
I'll call it May 16th. It is called May 17th in India.

09:19.160 --> 09:22.600
It's a different day. So let's go to May 16th folder,

09:22.600 --> 09:27.000
and there we have to create a new file.

09:27.000 --> 09:29.400
So I will go to that May 16th folder

09:29.400 --> 09:32.000
here and then create a new file.

09:32.000 --> 09:34.640
I'll call it Docker file,

09:34.640 --> 09:36.720
just simple Docker file like that.

09:36.720 --> 09:38.600
That new file is empty.

09:38.600 --> 09:40.440
So I'll begin with something like

09:40.440 --> 09:43.840
from NGINX as a beginning step.

09:43.840 --> 09:47.000
Basic beginning step, pull one image to begin with,

09:47.000 --> 09:50.160
and then we'll modify this image to run exactly what we want,

09:50.160 --> 09:53.760
and my goal with this particular exercise I'm about to

09:53.760 --> 09:58.280
begin is to create a simple NGINX web server

09:58.280 --> 10:02.920
that says something like hello Sanjay, for example.

10:02.920 --> 10:06.280
So I need to have a file that says hello Sanjay.

10:06.280 --> 10:09.360
So I'll create that file pretty much like this.

10:09.360 --> 10:12.000
In that same folder, rather I may 16 folder,

10:12.000 --> 10:14.960
I'll right-click new file, index.html,

10:14.960 --> 10:17.880
and in that file I'll create hello Sanjay.

10:17.880 --> 10:20.680
That's it. That's the output that we would like to see in

10:20.680 --> 10:25.760
a website running our own Docker file in some Cloud for real.

10:25.760 --> 10:27.440
The actual Cloud, actual file,

10:27.440 --> 10:29.680
everything from scratch, building it right now.

10:29.680 --> 10:31.440
So that's the beginning point. Hello Sanjay is

10:31.440 --> 10:33.360
the output that you will see eventually.

10:33.360 --> 10:35.720
So the result will be,

10:35.720 --> 10:41.080
rather what I would like the result to be is some Cloud.

10:41.080 --> 10:46.280
We'll go to that Cloud.http colon slash slash number,

10:46.280 --> 10:49.400
and then you will see hello Sanjay.

10:51.480 --> 10:54.480
This Cloud will run Docker,

10:54.480 --> 11:00.160
and it will run our own custom image right there.

11:00.160 --> 11:04.120
That's the output that I'm building towards it.

11:04.120 --> 11:06.320
So I have the hello Sanjay file,

11:06.320 --> 11:08.480
and I have from nginx,

11:08.480 --> 11:12.440
the beginning point, and I will add this hello Sanjay file,

11:12.440 --> 11:20.240
index.html file into the location

11:20.240 --> 11:24.160
inside where the nginx thing is running.

11:24.160 --> 11:28.960
If you remember the last time it was like, where html?

11:28.960 --> 11:31.560
If you know Namit,

11:31.560 --> 11:35.000
do you recall, was it this location or something else?

11:35.160 --> 11:39.040
Was it this? Namit, do you recall?

11:39.040 --> 11:40.520
I think so.

11:40.520 --> 11:42.680
But it's a shortcut.

11:42.680 --> 11:43.920
Sorry, say again.

11:43.920 --> 11:46.200
It has to be that. You're adding

11:46.200 --> 11:52.600
an index.html onto that directory.

11:52.600 --> 11:57.240
I think last time I assumed it is going to be this thing,

11:57.240 --> 12:00.960
and then it turned out to be something else.

12:00.960 --> 12:02.720
I assumed to be line number 3,

12:02.720 --> 12:05.240
but it turned out to be line number 2.

12:05.680 --> 12:08.520
That was the case the last time.

12:08.520 --> 12:10.720
So I'm going to ignore or comment,

12:10.720 --> 12:12.000
the line number 3 is commented out.

12:12.000 --> 12:13.200
It's not going to be effective.

12:13.200 --> 12:15.160
I'm putting it as a reference.

12:15.160 --> 12:17.480
Then what do we have?

12:17.480 --> 12:22.040
An nginx server that needs to run the nginx application for which

12:22.040 --> 12:25.920
we need to invoke some command to actually run nginx,

12:25.920 --> 12:28.160
something like this. I don't remember the syntax,

12:28.160 --> 12:32.080
but that's how it should be with some more flags,

12:32.080 --> 12:34.200
some additional things that go here.

12:34.200 --> 12:35.440
I don't remember that.

12:35.440 --> 12:37.560
So we will go and do a Google search

12:37.560 --> 12:39.400
to find out what that should be.

12:39.400 --> 12:42.520
I think the second parameter also will be double quotes.

12:42.520 --> 12:44.280
This thing runs for real.

12:44.280 --> 12:49.280
So we'll go to Firefox and say docker file,

12:49.280 --> 12:53.200
nginx, cmd, and find out what comes up.

12:53.680 --> 12:56.840
There should be some answer somewhere in one of the forums,

12:56.840 --> 13:02.240
we'll find it, or some cheating.

13:02.240 --> 13:04.680
This is how you actually work in real life.

13:04.680 --> 13:07.160
You won't cheat. That's what I'm doing.

13:07.160 --> 13:10.520
Cheating, because I don't want to remember or memorize anything,

13:10.520 --> 13:12.760
and so I think this is the right way.

13:12.760 --> 13:16.360
You know how to find out what the right way,

13:16.360 --> 13:18.120
and that is through experience.

13:18.120 --> 13:22.680
Experience of dealing with these things multiple times in your life.

13:22.680 --> 13:26.400
Then you get experience and used to how things work and what is the right answer.

13:26.400 --> 13:30.080
This is probably the right answer to put in terms of a command

13:30.080 --> 13:32.400
to actually execute the nginx process

13:32.400 --> 13:37.240
when this image that I will be building will run.

13:37.240 --> 13:39.800
So that's the docker file ready.

13:39.800 --> 13:45.320
I want to now build this docker file and create a new docker image.

13:45.320 --> 13:49.920
I will now save this file.

13:49.920 --> 13:52.760
Saved, and close.

13:52.760 --> 13:55.480
And then I'll open up terminal,

13:55.480 --> 13:58.320
and then I'll go to that May 16 folder.

13:58.320 --> 14:01.280
There I have these two files,

14:01.280 --> 14:03.720
and I will cat the docker file here.

14:03.720 --> 14:04.760
You see it?

14:04.760 --> 14:06.960
I'll also cat the index.html file.

14:06.960 --> 14:07.920
You see that?

14:07.920 --> 14:10.280
And I will now build the docker image.

14:10.280 --> 14:14.120
Docker image building is simply docker build and then dot.

14:14.120 --> 14:16.560
This dot basically means look in this folder,

14:16.560 --> 14:17.840
like right here, right now.

14:17.840 --> 14:24.280
Look at that folder and look for a file called docker file inside that folder.

14:24.280 --> 14:29.640
And then basically it's going to look at this file here, docker file,

14:29.640 --> 14:33.760
and then build that docker file into a docker image.

14:33.760 --> 14:37.480
So we will build it simply by running docker build dot.

14:37.480 --> 14:38.520
It builds.

14:38.520 --> 14:39.800
It's very fast.

14:39.800 --> 14:41.440
It has already built.

14:41.440 --> 14:42.600
Finished.

14:42.600 --> 14:44.480
But we don't know what the name is for this,

14:44.480 --> 14:46.320
so we need to assign a name to it.

14:46.320 --> 14:48.640
And I did not, so I should.

14:48.640 --> 14:52.040
So I'll build it again with a name this time.

14:52.040 --> 14:57.560
And what I'm going to do is open another editor so I can make notes

14:57.560 --> 15:00.840
as to what commands I'll be using, because again, I don't remember.

15:00.840 --> 15:03.320
I don't memorize anything, and I always cheat.

15:03.320 --> 15:04.680
That's my way.

15:04.680 --> 15:06.200
And so cheating is the best way.

15:06.200 --> 15:07.840
Cheating is how you should work.

15:07.840 --> 15:11.320
In real life, that's how things work, is you go Google search.

15:11.320 --> 15:13.680
You go do Stack Overflow.

15:13.680 --> 15:15.360
You do Chat GPT.

15:15.360 --> 15:17.560
You do Bard or whatever comes to your hand.

15:17.560 --> 15:21.280
Like the whole internet is available to you, so you go and cheat.

15:21.280 --> 15:22.200
That's how real life is.

15:22.200 --> 15:23.200
So that's what I'm doing.

15:23.200 --> 15:24.560
I'm doing the same thing.

15:24.560 --> 15:25.920
No different.

15:25.920 --> 15:31.920
So the way to build an image was simply line number 3,

15:31.920 --> 15:34.560
like right there, docker build dot.

15:34.560 --> 15:37.400
But I want to assign it a name.

15:37.400 --> 15:39.440
Hello, Sanjay.

15:39.440 --> 15:40.720
Line number 1.

15:40.720 --> 15:42.520
So that's what I will do now.

15:42.520 --> 15:44.240
I am going to change positions here.

15:44.240 --> 15:47.120
So I did line number 1, docker build dot.

15:47.120 --> 15:48.480
That builds the image.

15:48.480 --> 15:51.360
I will now assign it a name.

15:51.360 --> 15:54.280
Like this.

15:54.280 --> 15:57.880
I think, Sanjay, I'm going to mute you.

15:57.880 --> 15:58.920
Or you mute yourself.

15:58.920 --> 15:59.440
I muted, sorry.

15:59.440 --> 15:59.960
My bad.

15:59.960 --> 16:01.320
OK, no problem.

16:01.320 --> 16:07.400
So the idea next here is this line, which I will take.

16:07.400 --> 16:10.520
And then build again.

16:10.520 --> 16:11.680
So it builds.

16:11.680 --> 16:14.880
But this time, it has a name assigned to it.

16:14.880 --> 16:16.520
Now, how did I choose a name?

16:16.520 --> 16:18.120
You can choose whatever name you like.

16:18.120 --> 16:19.360
Doesn't matter.

16:19.360 --> 16:22.880
But there are some requirements to choosing a name.

16:22.880 --> 16:26.440
It actually is dictated by the place

16:26.440 --> 16:29.440
where you will store these images.

16:29.440 --> 16:33.840
And as you know, there are places to store images.

16:33.840 --> 16:36.760
So I'll talk briefly about that.

16:36.760 --> 16:38.920
Let's go check what name I assigned.

16:38.920 --> 16:41.920
I assigned the name in line number 2.

16:41.920 --> 16:46.280
And my name was this name.

16:46.280 --> 16:48.800
Let's dissect that name a little bit.

16:48.800 --> 16:51.760
The name I chose for the image is this.

16:51.760 --> 16:54.200
And the full name.

16:54.200 --> 16:57.840
The short name is just, hello, Sanjay.

16:57.840 --> 17:00.480
And what is this line number 6?

17:00.480 --> 17:01.880
That is dictated to you.

17:01.880 --> 17:04.600
You cannot just randomly choose it.

17:04.600 --> 17:08.160
Unless you build your own place to store.

17:08.160 --> 17:09.960
In that case, you choose it.

17:09.960 --> 17:12.440
And I built my own place to store images.

17:12.440 --> 17:14.480
And that is why I chose what I want.

17:14.480 --> 17:16.400
And so that line number 6 is a reference

17:16.400 --> 17:19.600
to my own location to store images, which

17:19.600 --> 17:22.320
is called a Docker registry.

17:22.320 --> 17:26.840
A Docker registry is where you put your images.

17:26.840 --> 17:29.720
There are many registries available on the internet.

17:29.720 --> 17:30.960
Docker Hub is one of them.

17:33.840 --> 17:36.280
Amazon.

17:36.280 --> 17:42.920
No, Azure Container Registry is another Azure, Microsoft.

17:42.920 --> 17:47.120
Elastic Container Registry is from Amazon.

17:47.120 --> 17:51.480
Google Container Registry is from Google.

17:51.480 --> 17:53.960
And then there is this Quay.

17:53.960 --> 17:55.720
And there are more.

17:55.720 --> 17:57.600
Every cloud provider will give you

17:57.600 --> 17:59.880
a place to store Docker images.

17:59.880 --> 18:02.240
And they are called registry locations.

18:02.240 --> 18:09.120
In my company, in my home, I built my own registry.

18:09.120 --> 18:12.560
And that's what I call line number 6.

18:12.560 --> 18:15.840
It is actually a machine running right here.

18:15.840 --> 18:18.000
And only I can use it.

18:18.000 --> 18:20.120
I don't allow anybody else to use that.

18:20.120 --> 18:22.960
So I have my own registry.

18:22.960 --> 18:25.160
My own.

18:25.160 --> 18:28.280
The name I chose is this, line number 6.

18:28.280 --> 18:30.960
And only I can use it.

18:30.960 --> 18:33.400
So you have a choice as to where will you.

18:33.400 --> 18:36.000
There is a question here for people waiting or something.

18:36.000 --> 18:38.480
Oh, OK.

18:38.480 --> 18:39.320
Let them in.

18:39.320 --> 18:40.800
I'll let them in.

18:40.800 --> 18:43.280
So hello.

18:43.280 --> 18:44.720
I hope you can hear me.

18:44.720 --> 18:45.520
Sahil.

18:45.520 --> 18:47.320
Sahil just joined.

18:47.320 --> 18:48.440
Can you?

18:48.440 --> 18:49.800
You can talk.

18:49.800 --> 18:53.400
You can unmute and interrupt me any time you feel like.

18:53.400 --> 18:57.120
So I was talking about creating an image to put in a place.

18:57.120 --> 18:58.920
And the place is called a Docker registry.

18:58.920 --> 19:01.000
And so I have my own registry.

19:01.000 --> 19:03.560
You can choose wherever you feel like.

19:03.560 --> 19:05.200
And each of these companies will dictate

19:05.200 --> 19:09.120
what you will name your images, including this.

19:09.120 --> 19:10.880
Docker Hub also has a registry.

19:10.880 --> 19:14.120
And Docker Hub is free for certain cases,

19:14.120 --> 19:15.680
certain use cases.

19:15.680 --> 19:18.080
So if you are using Docker Hub, your name

19:18.080 --> 19:26.600
should be something like your username slash.

19:26.600 --> 19:29.320
That's how it should be.

19:29.320 --> 19:32.240
Other clouds will have some other naming conventions.

19:32.240 --> 19:34.160
The fully qualified name for Docker registry

19:34.160 --> 19:40.440
should be something like Docker.io slash username slash.

19:40.440 --> 19:41.280
Hello, Sanjay.

19:41.280 --> 19:46.920
And then you can assign a tag number or tag string at the end.

19:46.920 --> 19:50.160
So that's how you fully qualify an image

19:50.160 --> 19:55.240
with the registry location and references associated with that.

19:55.240 --> 19:58.880
So if you look at this pattern carefully,

19:58.880 --> 20:07.520
you will find that this portion is the registry company name,

20:07.520 --> 20:12.760
Docker.io, or ACR, or ECR, or this or that.

20:12.760 --> 20:15.520
This is your username with that company.

20:15.520 --> 20:18.440
And this is your image name that you chose.

20:18.440 --> 20:20.040
You can choose whatever you want.

20:20.040 --> 20:22.240
And this is the tag name that you can choose.

20:22.240 --> 20:26.680
So that's how a name of an image is constructed.

20:26.680 --> 20:29.400
And so depending on the cloud company you want to use

20:29.400 --> 20:31.040
to store your images, you need to assign

20:31.040 --> 20:36.880
your name of the image in the creation step properly.

20:36.880 --> 20:40.440
I'm going to use my name.

20:40.440 --> 20:44.440
And so my name as in my company's registry.

20:44.440 --> 20:47.760
That is the name that I dictate for me.

20:47.760 --> 20:49.360
So that's the name I will be choosing.

20:49.360 --> 20:51.200
And I'll give you other examples.

20:51.200 --> 20:53.720
I'll probably also push the same exact image,

20:53.720 --> 20:55.800
build another image, copy, rename it

20:55.800 --> 20:59.160
to some other cloud, push it to that cloud service provider

20:59.160 --> 21:02.280
for that registry, for example, and do that way also

21:02.280 --> 21:04.000
so that you get a clear idea about how

21:04.000 --> 21:06.120
things work when you don't have Nilesh there with you.

21:09.760 --> 21:11.880
And that's what I will be doing also.

21:11.880 --> 21:14.840
So first, let me attempt my own registry.

21:14.840 --> 21:17.240
And I assigned a name to this.

21:17.240 --> 21:18.680
And I build that image.

21:18.680 --> 21:22.640
I need to push it to give it to the registry.

21:22.640 --> 21:23.800
So I'll push that.

21:23.800 --> 21:27.040
Pushing happens like this.

21:27.040 --> 21:35.960
So I'll erase the ink and then modify the name to Hello Sanjay.

21:35.960 --> 21:39.240
And so here is Hello Sanjay.

21:39.240 --> 21:39.760
There we go.

21:43.640 --> 21:49.000
And so that's the name I'm using for our images today.

21:49.000 --> 21:50.800
So back to the terminal.

21:50.800 --> 21:54.000
I have already created the image and assigned it

21:54.000 --> 21:56.720
my name in line number 2 on the right side.

21:56.720 --> 21:58.080
I already did that.

21:58.080 --> 22:00.760
What I need to do now is to take that image

22:00.760 --> 22:07.240
that I have here, Docker images, and then you grab it for Hello

22:07.240 --> 22:10.280
Sanjay.

22:10.280 --> 22:12.440
And you will see that the image is there, available created

22:12.440 --> 22:13.440
seven minutes ago.

22:13.440 --> 22:15.560
You can see it.

22:15.560 --> 22:19.280
So I will take that image and push it to my own cloud,

22:19.280 --> 22:22.640
like line number 14.

22:22.640 --> 22:26.480
I'll cut that line, put it right here in line number 4,

22:26.480 --> 22:29.760
and then push.

22:29.760 --> 22:31.200
It says push something, something,

22:31.200 --> 22:33.320
certificate expired.

22:33.320 --> 22:36.400
That's a problem from my own registry.

22:36.400 --> 22:38.880
It says certificate expired.

22:38.880 --> 22:40.360
Current time, something happened.

22:40.360 --> 22:42.400
So maybe I can fix the certificate

22:42.400 --> 22:47.400
or just ignore my registry for now because in a live setup,

22:47.400 --> 22:50.160
I don't want to be debugging certificate expirations

22:50.160 --> 22:52.440
for my own Docker registry.

22:52.440 --> 22:53.640
So I'm not doing that now.

22:53.640 --> 22:57.600
I just figured out it says registry certificate expired.

22:57.600 --> 22:59.520
If there's a quick fix, I'll implement that.

22:59.520 --> 23:03.720
Otherwise, I'll just go to Docker Hub and push it there.

23:03.720 --> 23:16.240
So let's see if I can fix my own certificate quickly.

23:16.240 --> 23:23.720
And that fix should be simply restarting my load balancer.

23:26.720 --> 23:27.560
That should fix.

23:37.240 --> 23:38.760
I think it did.

23:38.760 --> 23:40.520
So it fixed the certificate.

23:40.520 --> 23:44.400
So I'm going to push it again, and it's pushing.

23:44.400 --> 23:46.360
So I validate my certificate.

23:46.360 --> 23:48.480
Some problem in setting up the way

23:48.480 --> 23:52.000
the registry is expecting a HTTPS SSL certificate.

23:52.000 --> 23:53.560
That was fixed.

23:53.560 --> 23:56.200
And so we talk about how to set up

23:56.200 --> 23:59.480
registry in a separate session, not right now.

23:59.480 --> 24:01.000
We are going to use it right now.

24:01.000 --> 24:02.560
So I just pushed it.

24:02.560 --> 24:04.080
If you want to create a Docker image

24:04.080 --> 24:08.200
and push it to Docker Hub, well, you can do that.

24:08.200 --> 24:12.960
What you need to do is go to Docker Hub, like this.

24:12.960 --> 24:16.600
Docker Hub.

24:16.600 --> 24:17.560
And log in there.

24:20.520 --> 24:23.640
Log in, sign in button.

24:23.640 --> 24:25.920
Type in the username.

24:25.920 --> 24:28.440
Type in the password.

24:28.440 --> 24:29.960
And then authentication code.

24:35.280 --> 24:36.200
And verify.

24:36.200 --> 24:38.160
So you get inside Docker Hub.

24:38.160 --> 24:42.200
And here, you can push whatever you want.

24:42.200 --> 24:46.680
So what I have is, let's see.

24:46.680 --> 24:49.640
I'm going to pick the company name, Cloud Genius,

24:49.640 --> 24:52.800
and then push it to that name, or that namespace,

24:52.800 --> 24:53.840
I should say.

24:53.840 --> 24:56.080
Which means, like line number two,

24:56.080 --> 25:04.280
I need to create an image tag that Docker expects, like this.

25:04.280 --> 25:06.520
If your username is something like this,

25:06.520 --> 25:08.320
it will be that username.

25:08.320 --> 25:10.040
So basically, whatever your username is,

25:10.040 --> 25:12.600
that's the name of that image.

25:12.600 --> 25:15.760
So you need to build that Docker image one more time

25:15.760 --> 25:18.840
with the proper tags, like this.

25:18.840 --> 25:21.240
Hello, Sanjay, with the Docker specified,

25:21.240 --> 25:23.960
Docker registry specified naming convention.

25:23.960 --> 25:26.120
So we're building it, built it.

25:26.120 --> 25:29.720
Now we need to take this image, which is a different name,

25:29.720 --> 25:34.560
and push it, just like this, but with a different name

25:34.560 --> 25:37.640
that Docker Hub expects.

25:37.640 --> 25:40.960
So here we go.

25:40.960 --> 25:44.080
And I'm going to push using line number seven.

25:44.080 --> 25:47.840
What it will do is actually push my image from my machine

25:47.840 --> 25:51.680
to Docker Hub, somewhere here.

25:51.680 --> 25:54.920
And so if you look for, hello, Sanjay, it's not there yet.

25:54.920 --> 25:59.920
But if I push, it should attempt to push and might fail,

25:59.920 --> 26:04.000
because it requires you to log in.

26:04.000 --> 26:07.560
It succeeded, because I probably already logged in.

26:07.560 --> 26:11.560
If you are not logged in, you need to say Docker login,

26:11.560 --> 26:15.840
and then type in your username and get a password from them.

26:15.840 --> 26:17.280
These guys don't give you passwords.

26:17.280 --> 26:20.320
These days, they expect you to go to account settings

26:20.320 --> 26:24.480
and security profile and create a Docker access token.

26:24.480 --> 26:26.720
A new token is needed on the command line.

26:26.720 --> 26:28.560
You cannot use password.

26:28.560 --> 26:31.440
So you need to type the Docker login, login name, password,

26:31.440 --> 26:33.960
token, and then it logs in.

26:33.960 --> 26:35.520
Once you're logged in already, then you

26:35.520 --> 26:38.760
can push and pull from that Docker registry.

26:38.760 --> 26:39.840
Now I've pushed it.

26:39.840 --> 26:41.160
So let's go check with Docker Hub.

26:41.160 --> 26:44.040
Do you see my image there?

26:44.040 --> 26:46.800
If I go to account, Docker Hub, and my name, hello, Sanjay

26:46.800 --> 26:49.840
pops up right there.

26:49.840 --> 26:51.600
And it was just pushed.

26:51.600 --> 26:53.280
So the image is there.

26:53.280 --> 26:55.120
I'm going to use both these ones, the one I

26:55.120 --> 26:57.640
have in my own registry in my home,

26:57.640 --> 26:59.240
as well as the one I just put.

26:59.240 --> 27:02.560
They're basically identical images, different names,

27:02.560 --> 27:05.440
like number six and seven.

27:05.440 --> 27:06.440
Same thing.

27:06.440 --> 27:09.120
Line number two and three, same thing.

27:09.120 --> 27:11.480
The building process is actually line number one.

27:11.480 --> 27:12.360
It actually builds.

27:12.360 --> 27:14.720
And then you're just assigning tags in line number three

27:14.720 --> 27:18.120
and four, or tags, tag means name.

27:18.120 --> 27:19.960
And line number seven and eight are

27:19.960 --> 27:22.800
pushing those tags with the image associated

27:22.800 --> 27:24.400
to the appropriate registry.

27:24.400 --> 27:28.200
Six goes to my home, and seven goes to Docker Hub.

27:28.200 --> 27:30.440
You can have customized it further

27:30.440 --> 27:33.160
to, say, Google Container Registry, something

27:33.160 --> 27:38.480
like gcr.io, slash god knows what, slash something else,

27:38.480 --> 27:40.440
slash something, give you a random convention.

27:40.440 --> 27:43.320
And then you follow, and you put your own name.

27:43.320 --> 27:45.200
That's how other companies work.

27:45.200 --> 27:46.960
So they'll dictate what you put here.

27:46.960 --> 27:47.760
I don't know.

27:47.760 --> 27:50.520
You have to go there and find out in your account

27:50.520 --> 27:51.560
what should that name be.

27:51.560 --> 27:54.000
Some string they will give you to put here.

27:54.000 --> 27:55.840
So that's how it works.

27:55.840 --> 27:57.200
This is unknown right now.

27:57.200 --> 27:59.520
I don't care.

27:59.520 --> 28:00.800
So we created the image.

28:00.800 --> 28:03.720
We pushed it.

28:03.720 --> 28:07.520
Now is the time to run it locally first, right here

28:07.520 --> 28:08.960
on the Mac.

28:08.960 --> 28:11.840
Oh, sorry, on the Ubuntu machine, I should say.

28:11.840 --> 28:14.560
I should not call it a Mac.

28:14.560 --> 28:18.200
This, as you know, is an Ubuntu machine.

28:18.200 --> 28:20.080
It has the image that I just built.

28:24.560 --> 28:28.720
And there are two names to the same image.

28:28.720 --> 28:33.840
One is for my local registry, and the other is for Docker Hub.

28:33.840 --> 28:37.080
What I will do now is to see if I can run these images locally

28:37.080 --> 28:38.400
right here, right now.

28:38.400 --> 28:40.080
How do you run them?

28:40.080 --> 28:43.520
You go here and find out cheat code.

28:43.520 --> 28:45.480
I have such a bad memory.

28:45.480 --> 28:47.640
I don't remember anything whatsoever.

28:47.640 --> 28:49.160
I have to cheat every single time.

28:49.160 --> 28:52.920
So I go and refer to my notes, or go and do Google search.

28:52.920 --> 28:55.160
These days, barred search, chat GPT search.

28:55.160 --> 28:56.080
God knows whatever.

28:56.080 --> 28:58.280
Just don't memorize stuff.

28:58.280 --> 29:00.360
That's the thing I'm trying to tell you.

29:00.360 --> 29:02.480
Do not memorize anything.

29:02.480 --> 29:04.000
Always forget everything.

29:04.000 --> 29:05.360
It's a great thing to do.

29:05.360 --> 29:06.720
Just don't remember anything.

29:06.720 --> 29:08.320
Don't have to.

29:08.320 --> 29:10.560
There are computers to help you with that.

29:10.560 --> 29:13.120
So never memorize anything, whatever.

29:13.120 --> 29:15.200
Absolutely never.

29:15.200 --> 29:18.360
So what you need to understand is more important

29:18.360 --> 29:21.480
is what are you doing, and how will you get that done?

29:21.480 --> 29:23.800
What that actual process is, what the command is,

29:23.800 --> 29:25.840
what the syntax is, nobody cares.

29:25.840 --> 29:27.880
Because we have internet with us.

29:27.880 --> 29:29.320
And these days, AI with us.

29:29.320 --> 29:31.240
So you'd use that.

29:31.240 --> 29:33.400
Don't worry about remembering, memorizing.

29:33.400 --> 29:34.400
It is nonsense.

29:34.400 --> 29:36.160
So don't do that.

29:36.160 --> 29:41.320
Having said, this step, line number 14 is kind of useless.

29:41.320 --> 29:43.720
We already did that.

29:43.720 --> 29:47.280
This we talked about, line number 12.

29:47.280 --> 29:49.480
This, we should now run it locally.

29:49.480 --> 29:50.720
So let's go run.

29:50.720 --> 29:54.480
Line number 23 is how you run it to begin with, to test it out.

29:54.480 --> 29:58.240
So let us go test and see how it responds.

29:58.240 --> 29:59.640
Yeah, it is running.

29:59.640 --> 30:02.360
Let us see the process is running inside.

30:02.360 --> 30:03.600
Command P has not found.

30:03.600 --> 30:04.400
OK, that's OK.

30:04.400 --> 30:05.800
That's expected.

30:05.800 --> 30:08.320
This is expected.

30:08.320 --> 30:18.880
So the next thing we will do is run it properly

30:18.880 --> 30:21.320
without this bash thing at the end.

30:21.320 --> 30:22.680
When you want to run it properly,

30:22.680 --> 30:25.640
you want to actually assign a port

30:25.640 --> 30:27.160
on which it will expose itself.

30:27.160 --> 30:30.920
So that is going to be in line number 27, if I remember right.

30:30.920 --> 30:36.720
Line number 27 should do it the way I want, like that.

30:36.720 --> 30:38.920
Now, there is this esoteric thing

30:38.920 --> 30:41.480
that I have here, which is 8760.

30:41.480 --> 30:43.200
It's a custom port.

30:43.200 --> 30:46.320
I'm using a custom port on my Ubuntu machine

30:46.320 --> 30:49.560
because my port number 80 is taken.

30:49.560 --> 30:53.600
When you will run in the cloud, you will go like this,

30:53.600 --> 30:55.560
directly to the port number 80 on the cloud,

30:55.560 --> 30:57.920
because that is not taken by anything else.

30:57.920 --> 31:00.840
You'll be able to run it just like line number 25 is.

31:00.840 --> 31:04.400
But for my setup, my port number 80 is occupied.

31:04.400 --> 31:06.240
So I need to modify a little bit,

31:06.240 --> 31:08.720
and I need to go something like this to make

31:08.720 --> 31:13.320
it run on my machine, on port number 8760.

31:13.320 --> 31:15.840
And so I'll take that line number 27 here locally

31:15.840 --> 31:18.120
on my machine and run it.

31:18.120 --> 31:20.560
When I run it, it runs.

31:20.560 --> 31:21.800
Let us see what is running.

31:25.720 --> 31:27.600
And you will see that some things are running here,

31:27.600 --> 31:29.720
apparently.

31:29.720 --> 31:32.280
Yeah, one thing is running, one is exited.

31:32.280 --> 31:37.520
So this exited thing about a minute ago, I can clean it up.

31:37.520 --> 31:38.360
How do you clean up?

31:38.360 --> 31:43.480
You get this number from here, the initial few letters

31:43.480 --> 31:49.960
of that, PC07, as long as it is unambiguous, you can kill it.

31:49.960 --> 31:53.200
And then you have only one Sanjay process running

31:53.200 --> 31:54.880
in the form of a container.

31:54.880 --> 31:56.680
And you can examine it.

31:56.680 --> 32:02.000
It shows you that it is actually running exactly as you expect.

32:02.000 --> 32:08.120
Port number 8760 on the machine, Ubuntu machine, map to the container,

32:08.120 --> 32:13.280
port 80 in the container, running nginx.

32:13.280 --> 32:14.760
And this is your Ubuntu machine.

32:18.320 --> 32:21.520
So that mapping is taken care of.

32:21.520 --> 32:23.080
Let us go actually test.

32:23.080 --> 32:28.200
For which I need to go and visit a browser.

32:28.200 --> 32:31.080
And in that browser, I will type the address for that location

32:31.080 --> 32:33.560
where the machine is located.

32:33.560 --> 32:36.080
On line number 27, the address should be

32:36.080 --> 32:40.800
http colon slash slash, the machine's IP address.

32:40.800 --> 32:45.440
And then followed by, this is the IP address for the machine.

32:45.440 --> 32:48.360
And then I will type the address for the machine.

32:48.360 --> 32:52.960
It's IP address, and then followed by, this is the IP address,

32:52.960 --> 32:56.680
followed by port number 8760.

32:56.680 --> 32:59.160
That's where it should be running.

32:59.160 --> 33:02.280
So the IP address happens to be this name.

33:07.120 --> 33:12.080
So I'll take that name and put it right there.

33:12.080 --> 33:17.280
And it shows me not what I expect.

33:17.280 --> 33:20.280
We expect it to see, hello, Sanjay.

33:20.280 --> 33:23.440
And we get the default page.

33:23.440 --> 33:25.480
That's not what we wanted.

33:25.480 --> 33:28.480
And so that means our Dockerfile location

33:28.480 --> 33:33.280
that I chose in line number three

33:33.280 --> 33:34.840
is probably the right one.

33:34.840 --> 33:37.880
I don't know why things change, but we had to find it out.

33:37.880 --> 33:39.320
So let's go change it.

33:39.320 --> 33:42.360
There's a short method, quick and short dirty method.

33:42.360 --> 33:43.360
Change it.

33:43.360 --> 33:45.520
I did.

33:45.520 --> 33:46.680
And then save it.

33:46.680 --> 33:49.000
And then quickly build the entire process.

33:53.400 --> 33:54.360
How do you build?

33:54.360 --> 34:00.840
You take that name there and build it again.

34:00.840 --> 34:07.680
Then you run it, just like line number 27 was, like line 27.

34:07.680 --> 34:08.840
Here.

34:08.840 --> 34:22.160
And you kill the older processes first.

34:22.160 --> 34:25.480
Hold on, is it running or what?

34:25.480 --> 34:28.600
Docker ps-a-pipe grep.

34:34.120 --> 34:36.040
No, it is not running.

34:36.040 --> 34:39.640
So what is this showing us then?

34:39.640 --> 34:40.600
Where is it coming from?

34:43.800 --> 34:46.480
Something is running, but I don't see anything running.

34:46.480 --> 34:47.280
That's strange.

34:53.160 --> 34:55.200
Something is running there.

34:55.200 --> 34:58.200
And you need to kill it.

34:58.200 --> 35:00.280
So this must be something old running

35:00.280 --> 35:02.520
from my previous attempt at running this.

35:02.520 --> 35:03.840
So I'm going to kill that process.

35:03.840 --> 35:08.360
Docker rm-f b861.

35:08.360 --> 35:09.760
So it kills.

35:09.760 --> 35:11.920
That should go and check in the browser.

35:11.920 --> 35:13.160
It should say unable to connect.

35:13.160 --> 35:14.000
That's good.

35:14.000 --> 35:17.760
Now I will run our command to actually run

35:17.760 --> 35:22.160
this image one more time, which is line number 27.

35:22.160 --> 35:25.840
At the port I'm choosing is 8760.

35:25.840 --> 35:28.360
And so here it should run.

35:28.360 --> 35:32.280
And then we go open the browser and refresh.

35:32.280 --> 35:34.080
And we see, hello, Sanjay.

35:34.080 --> 35:35.600
That is the expected result. So I

35:35.600 --> 35:38.040
think something stale was there running in the background

35:38.040 --> 35:39.760
that I forgot to kill.

35:39.760 --> 35:42.200
So I found it, killed it, ran a refresh,

35:42.200 --> 35:44.400
and the result is available.

35:44.400 --> 35:52.280
What I want to do now is quickly build the image for Docker Hub

35:52.280 --> 35:53.080
also.

35:53.080 --> 35:55.720
Same idea, terminal.

35:55.720 --> 35:58.160
And we build this image last time

35:58.160 --> 36:00.440
using this name convention.

36:00.440 --> 36:02.720
So I'll build that image this time with the Docker Hub

36:02.720 --> 36:05.200
convention.

36:05.200 --> 36:07.040
And it builds.

36:07.040 --> 36:08.320
Then we'll say Docker push.

36:13.640 --> 36:17.640
And it pushes to Docker Hub.

36:17.640 --> 36:19.600
Access denied, it says.

36:19.600 --> 36:20.560
Strange.

36:20.560 --> 36:21.560
It says access denied.

36:21.560 --> 36:24.360
That means it is asking me to log in.

36:24.360 --> 36:26.920
So I'll try one more time.

36:26.920 --> 36:28.440
And it says access denied.

36:28.440 --> 36:32.440
That means I need to go Docker login.

36:32.440 --> 36:34.880
And it says Docker login succeeded

36:34.880 --> 36:39.280
because it previously picked up the Docker login

36:39.280 --> 36:41.160
from a cache location.

36:41.160 --> 36:44.240
It was cached locally in this location.

36:44.240 --> 36:48.360
And it says authenticating with existing credentials.

36:48.360 --> 36:51.040
Using a credential helper will remove this warning.

36:51.040 --> 36:52.400
Login succeeded.

36:52.400 --> 36:53.800
OK, fine.

36:53.800 --> 36:56.320
So please push it.

36:56.320 --> 36:58.680
So access is denied.

36:58.680 --> 37:01.680
And I have to go identify with a Docker login succeed,

37:01.680 --> 37:03.200
but the pushing is not allowed.

37:03.200 --> 37:04.880
What is going on?

37:04.880 --> 37:06.400
That is something I have to find out.

37:09.360 --> 37:11.600
Pushing is disallowed.

37:11.600 --> 37:16.280
So we will, I think, yeah.

37:16.280 --> 37:20.760
I think it's some kind of quota issue, apparently.

37:20.760 --> 37:25.560
It says I'm using four out of one private repositories, OK?

37:25.560 --> 37:28.120
What does that mean?

37:28.120 --> 37:29.080
Four out of one.

37:29.080 --> 37:31.160
I don't even want to use a private repository.

37:31.160 --> 37:33.320
I'm going to make it public.

37:33.320 --> 37:33.760
So settings.

37:36.600 --> 37:38.040
Let's go delete this.

37:38.040 --> 37:45.000
And so that's the reason why I don't

37:45.000 --> 37:47.200
like to use public repositories.

37:47.200 --> 37:50.360
Like this Docker hub company, they dictate things on you.

37:50.360 --> 37:53.000
Do this, don't do that, all that nonsense.

37:53.000 --> 37:54.280
So I run my own registry.

37:54.280 --> 37:56.040
I don't care.

37:56.040 --> 37:57.840
So I deleted that.

37:57.840 --> 38:01.240
So I hope that goes away.

38:01.240 --> 38:03.240
Still there, some deleting.

38:03.240 --> 38:05.280
It says deleting, which is fine.

38:05.280 --> 38:08.160
So let it delete.

38:08.160 --> 38:12.480
And I can maybe delete something else also.

38:12.480 --> 38:16.120
This was like two or three or four years ago.

38:16.120 --> 38:17.920
These images are not used and sitting here.

38:17.920 --> 38:19.400
I don't use this registry.

38:19.400 --> 38:22.000
That's why they have the old images sitting there.

38:22.000 --> 38:25.640
And so let's go let it delete first successfully.

38:25.640 --> 38:27.040
Deleting.

38:27.040 --> 38:30.400
So let's try pushing it.

38:30.400 --> 38:31.520
Access denied.

38:31.520 --> 38:33.600
Some policy issue here, apparently,

38:33.600 --> 38:36.080
that is preventing me from pushing.

38:36.080 --> 38:39.480
And they seem to have a bug of some solid type,

38:39.480 --> 38:41.000
which is very weird.

38:41.000 --> 38:44.040
It says four out of one private registry.

38:44.040 --> 38:45.880
This is mathematically incorrect.

38:45.880 --> 38:49.720
OK, so since I did not succeed with this Docker registry,

38:49.720 --> 38:52.400
by the way, you will succeed, because you may not

38:52.400 --> 38:53.800
have any images there.

38:53.800 --> 38:56.160
So there will be a quota of like one.

38:56.160 --> 39:00.840
So it's very, very minimal free quota they give you.

39:00.840 --> 39:04.320
And so that should work for the first image.

39:04.320 --> 39:06.280
And I'm trying to delete my existing images,

39:06.280 --> 39:08.120
and it is still stuck on deleting.

39:08.120 --> 39:09.840
It says depository being deleted.

39:09.840 --> 39:12.600
It should not take that long for deletions.

39:12.600 --> 39:14.600
But apparently, that was a mistake.

39:14.600 --> 39:17.640
But apparently, that's the state.

39:17.640 --> 39:19.560
So finally disappeared.

39:19.560 --> 39:21.040
OK, great.

39:21.040 --> 39:22.600
So I'm going to create a new repository.

39:22.600 --> 39:25.120
I'll call it Hello Sanjay.

39:25.120 --> 39:29.600
And make it public, clearly.

39:29.600 --> 39:31.560
And then create.

39:31.560 --> 39:33.760
So it is a public repository is empty.

39:33.760 --> 39:36.440
I'm going to now push it to that empty repository.

39:36.440 --> 39:38.320
And I hope this should succeed.

39:38.320 --> 39:39.840
This should push.

39:39.840 --> 39:40.560
Yes, it's pushing.

39:40.560 --> 39:41.600
Something happening.

39:41.600 --> 39:42.440
Different.

39:42.440 --> 39:45.480
So by default, I think it assumes

39:45.480 --> 39:47.400
that it is a private repository, and it's

39:47.400 --> 39:49.640
going to be limiting me for some budget criteria.

39:49.640 --> 39:51.040
I don't know what criteria.

39:51.040 --> 39:53.760
But if you create a repository manually

39:53.760 --> 39:58.960
like this on the Docker website, mark it public.

39:58.960 --> 40:00.720
I hope that will work.

40:00.720 --> 40:02.320
I'm hoping, because we don't know.

40:02.320 --> 40:04.680
So these are third-party companies

40:04.680 --> 40:09.400
that we depend on, but they're not sometimes dependable.

40:09.400 --> 40:12.000
And so that's why I tend to run everything myself

40:12.000 --> 40:14.280
in my own control.

40:14.280 --> 40:18.040
And then you run into issues like, I, certificate failed.

40:18.040 --> 40:18.680
That's OK.

40:18.680 --> 40:20.080
I know how to fix it.

40:20.080 --> 40:21.120
So I fixed it.

40:21.120 --> 40:22.680
And this thing, by the way, succeeded.

40:22.680 --> 40:25.520
So I pushed that image off to Docker Hub.

40:25.520 --> 40:26.680
That should show up here.

40:29.640 --> 40:32.240
And it does say pushed a few seconds ago.

40:32.240 --> 40:33.000
That's nice.

40:33.000 --> 40:34.880
It's a nice sign.

40:34.880 --> 40:37.560
OK, the image got pushed.

40:37.560 --> 40:40.760
So now that we have our image in two places, one of them

40:40.760 --> 40:46.480
is my home in line number six.

40:46.480 --> 40:49.400
And then also this Docker push to line number seven

40:49.400 --> 40:50.840
to Docker Hub also succeeded.

40:50.840 --> 40:54.640
We are not doing line number eight.

40:54.640 --> 40:56.640
OK, now what?

40:56.640 --> 40:57.880
So we have created an image.

40:57.880 --> 41:00.240
We need to use it now to some cloud.

41:00.240 --> 41:04.720
So let us go to some cloud here.

41:04.720 --> 41:11.240
The cloud I want to use today is, what's the cloud name?

41:11.240 --> 41:12.520
I forget the name.

41:12.520 --> 41:13.800
Headsner.

41:13.800 --> 41:16.120
So the random cloud, I just go to any cloud.

41:16.120 --> 41:18.760
I have accounts with every cloud.

41:18.760 --> 41:22.280
Headsner cloud, this is what I will be using.

41:22.280 --> 41:26.720
The reason for this is because it's a new cloud.

41:26.720 --> 41:33.280
And it is also pretty decent in terms of performance

41:33.280 --> 41:39.560
because it is local to our area, almost like to our drive.

41:39.560 --> 41:42.920
And I will be able to reach that location.

41:42.920 --> 41:44.640
So that's the Headsner cloud.

41:44.640 --> 41:46.680
It's actually a German company.

41:46.680 --> 41:48.040
And they have a location right here.

41:54.080 --> 41:58.400
So I think I should succeed in logging in.

41:58.400 --> 42:01.440
Maintenance work, what's new?

42:01.440 --> 42:03.280
Don't run your maintenance right now.

42:06.400 --> 42:10.360
Maintenance work on mirror, fine.

42:10.360 --> 42:12.200
When is it going to end?

42:12.200 --> 42:16.320
End at, OK, some maintenance happening.

42:16.320 --> 42:17.120
Whatever.

42:17.120 --> 42:21.400
So I will now go create a, sorry, select a project.

42:21.400 --> 42:22.440
I already have a project.

42:22.440 --> 42:24.240
Project is just the namespace.

42:24.240 --> 42:27.520
I will add a new machine there.

42:27.520 --> 42:29.640
And I will put that in Hillsboro, Oregon,

42:29.640 --> 42:34.560
which is almost two hours away from here, two, three hours.

42:34.560 --> 42:35.720
Maybe more than three.

42:35.720 --> 42:36.880
I don't know how far it is.

42:36.880 --> 42:38.760
But it's proximity.

42:38.760 --> 42:43.400
I will use this location.

42:43.400 --> 42:49.800
I will use an image called Ubuntu OS as the image, Ubuntu 22.04.

42:49.800 --> 42:54.640
And then we'll choose a cheap, small machine.

42:54.640 --> 42:55.960
Cheap is good.

42:55.960 --> 42:58.000
Small is better.

42:58.000 --> 43:01.280
And even better is free.

43:01.280 --> 43:03.440
You can get a free machine from many cloud companies,

43:03.440 --> 43:04.840
just so you know.

43:04.840 --> 43:08.040
And so free machine for certain conditions apply.

43:08.040 --> 43:09.600
And you need to read the conditions

43:09.600 --> 43:11.160
and then get the free machine.

43:11.160 --> 43:12.720
For me, it is not free.

43:12.720 --> 43:14.280
For you, it is going to be likely free

43:14.280 --> 43:17.000
if you are using it first time.

43:17.000 --> 43:20.080
And here I will make sure that I am providing them

43:20.080 --> 43:23.000
with my SSH key.

43:23.000 --> 43:27.520
So what I need to do is go to my machine

43:27.520 --> 43:30.360
and somebody also logging in again.

43:30.360 --> 43:33.760
So I'm going to let them in in the meeting.

43:33.760 --> 43:35.440
So they are coming into the meeting.

43:35.440 --> 43:39.120
And I am going to let them in.

43:39.120 --> 43:42.640
So hello, people who just joined.

43:42.640 --> 43:44.120
I am continuing.

43:44.120 --> 43:45.240
You can speak, by the way.

43:45.240 --> 43:47.600
So people who just joined, you can speak at any time.

43:47.600 --> 43:49.000
Open your mic and speak.

43:49.000 --> 43:51.760
There's no problem at all.

43:51.760 --> 43:54.560
So what I am doing next is take our image

43:54.560 --> 43:56.720
and push it out to the cloud, for which

43:56.720 --> 43:59.320
I need to, sorry, I already did that.

43:59.320 --> 44:03.560
What I need to get is a key pair from my computer

44:03.560 --> 44:05.840
and give to these guys, the cloud company.

44:05.840 --> 44:09.200
They need to know who I am.

44:09.200 --> 44:17.000
So I need to grab my key pair from here.

44:17.000 --> 44:20.080
That is my public key.

44:20.080 --> 44:23.680
So I need to grab that public key and give it to this company.

44:23.680 --> 44:32.400
So I'll cat that public key and then copy it.

44:39.520 --> 44:44.000
And then here onto the cloud company,

44:44.000 --> 44:49.880
I'll add a new key and paste it in.

44:49.880 --> 44:53.760
And it says, this SSH key already exists in the project.

44:53.760 --> 44:56.840
That means my key, they already know me.

44:56.840 --> 44:58.120
But that's how you do it.

44:58.120 --> 45:02.760
You get your public key, put it there, and then paste it in,

45:02.760 --> 45:03.760
and then save.

45:03.760 --> 45:05.600
Apparently, I already have my key there.

45:05.600 --> 45:07.000
I don't need to paste it.

45:07.000 --> 45:08.720
I just need to select it.

45:08.720 --> 45:11.200
So I selected it.

45:11.200 --> 45:22.400
And then scroll, scroll, scroll, and give it a name.

45:22.400 --> 45:24.840
We'll call it some cloud, or Sanjay cloud.

45:24.840 --> 45:25.480
How about that?

45:25.480 --> 45:27.440
Sanjay cloud.

45:27.440 --> 45:29.120
Or just Sanjay, or it doesn't matter.

45:29.120 --> 45:30.520
The name is not that relevant.

45:30.520 --> 45:32.640
So just put in some name for the machine.

45:32.640 --> 45:35.800
And then you have to purchase.

45:35.800 --> 45:39.400
Basically, you have to rent this machine from them.

45:39.400 --> 45:40.960
So I'm going to rent it.

45:40.960 --> 45:43.760
I will be spending some money on this activity.

45:43.760 --> 45:46.720
And I will be, if I keep this machine up and running

45:46.720 --> 45:53.240
for about one month, they will charge me $4.35.

45:53.240 --> 45:56.360
If you don't run it for a day, if you run it for a day,

45:56.360 --> 45:59.020
they'll divide it by 30, approximately.

45:59.020 --> 46:01.200
So create and buy.

46:01.200 --> 46:01.920
I purchased.

46:01.920 --> 46:03.680
The machine is getting ready.

46:03.680 --> 46:06.640
And I got this IP address.

46:06.640 --> 46:12.440
Grab it, copy it, and put it in my notes.

46:12.440 --> 46:16.280
So that's the IP address for my machine.

46:16.280 --> 46:18.280
Now that machine runs Ubuntu.

46:18.280 --> 46:21.280
It doesn't have Docker.

46:21.280 --> 46:23.960
So we need to put Docker in there.

46:23.960 --> 46:25.800
So this machine IP address that I have,

46:25.800 --> 46:28.680
it's called Sanjay cloud.

46:28.680 --> 46:31.040
That has the IP address right there.

46:31.040 --> 46:34.960
And it does not have anything else apart from basic Ubuntu

46:34.960 --> 46:35.760
OS.

46:35.760 --> 46:37.000
That's it.

46:37.000 --> 46:39.120
So we need to put everything we need there

46:39.120 --> 46:42.520
to make it run Docker, and then run our Docker

46:42.520 --> 46:43.840
image in that machine.

46:43.840 --> 46:45.440
And then you will see, hello, Sanjay,

46:45.440 --> 46:47.440
showing up as a result. That's what we're

46:47.440 --> 46:50.080
expecting to see at the end.

46:50.080 --> 46:53.160
So what are we going to do next?

46:53.160 --> 46:56.280
We are going to connect to that Sanjay cloud machine using

46:56.280 --> 46:58.880
this IP address.

46:58.880 --> 47:00.080
So we'll do that.

47:00.080 --> 47:12.240
I am going to take my command line again.

47:12.240 --> 47:15.000
This is the project we are working on, May 16.

47:15.000 --> 47:18.200
And here, I will SSH into that machine,

47:18.200 --> 47:23.080
into that remote head in a cloud machine in Hillsboro, Oregon.

47:23.080 --> 47:25.320
And the login name is root.

47:25.320 --> 47:26.600
And so it says, are you sure?

47:26.600 --> 47:30.000
And I say, yes, and it connects.

47:30.000 --> 47:31.200
Nice.

47:31.200 --> 47:32.200
What do we do now?

47:32.200 --> 47:33.960
Do you have Docker in there?

47:33.960 --> 47:35.400
No.

47:35.400 --> 47:40.520
Can you install Docker by typing these commands?

47:40.520 --> 47:41.880
Yes.

47:41.880 --> 47:44.720
Should you install Docker by typing these commands?

47:44.720 --> 47:46.000
Probably no.

47:46.000 --> 47:47.240
You don't.

47:47.240 --> 47:55.480
Because what you should do is go to the official documentation

47:55.480 --> 48:00.840
and search how to install Docker on Ubuntu 22.04.

48:00.840 --> 48:04.160
And that's how the DigitalOcean guys tell you.

48:04.160 --> 48:06.120
But that's DigitalOcean.

48:06.120 --> 48:08.440
I want to read the official documentation.

48:08.440 --> 48:10.840
So I go here.

48:10.840 --> 48:12.480
Install Docker engine on Ubuntu.

48:12.480 --> 48:15.720
That's the official documentation for Docker.

48:15.720 --> 48:18.440
So I'll follow that, not follow these commands.

48:18.440 --> 48:20.560
They give you a shortcut cheat method.

48:20.560 --> 48:21.960
You can use that.

48:21.960 --> 48:23.480
It's not illegal.

48:23.480 --> 48:25.720
You can totally use these methods, like these two methods

48:25.720 --> 48:28.000
they provide you.

48:28.000 --> 48:31.520
These two, one and two, they're OK.

48:31.520 --> 48:33.600
And it's not bad.

48:33.600 --> 48:36.960
But this is the official method.

48:36.960 --> 48:41.960
So we'll use the official method, not the shortcut method,

48:41.960 --> 48:44.760
which means you have to read.

48:44.760 --> 48:47.960
First thing, remove any old Docker that you have.

48:47.960 --> 48:49.840
I don't have any.

48:49.840 --> 48:53.280
Next, set up the app repository.

48:53.280 --> 49:00.720
So go copy this, run it, and then copy this.

49:00.720 --> 49:04.320
It should be fast, because it's a cloud-connected machine.

49:04.320 --> 49:06.360
My home is equally fast, I guess.

49:06.360 --> 49:07.080
So it's not bad.

49:07.080 --> 49:10.760
But if you're running from a different location

49:10.760 --> 49:13.360
and you do not have high-speed internet,

49:13.360 --> 49:16.560
that may be a bit slow if you run things locally,

49:16.560 --> 49:19.360
like.compile Docker images and pull down Docker images

49:19.360 --> 49:21.120
from cloud services.

49:21.120 --> 49:23.680
But this guy is actually the cloud itself.

49:23.680 --> 49:25.520
It's very high bandwidth, high-speed internet

49:25.520 --> 49:26.920
available to us.

49:26.920 --> 49:29.840
So we are following instructions line by line.

49:32.800 --> 49:35.680
No rocket science, just copy paste, nothing else.

49:39.120 --> 49:41.400
But just don't miss a step.

49:41.400 --> 49:42.800
That's the key.

49:42.800 --> 49:44.840
Don't miss it, and you should be OK.

49:47.880 --> 49:50.560
Then we install app update, and then install

49:50.560 --> 49:53.800
the Docker engine in the next step, like this.

49:57.040 --> 50:00.080
And this will install Docker, Docker compose,

50:00.080 --> 50:03.480
and any associated plugins needed.

50:03.480 --> 50:04.040
It'll do it.

50:06.760 --> 50:08.040
Then you have Docker.

50:08.040 --> 50:08.560
That's it.

50:08.560 --> 50:10.120
That's how the official method is.

50:10.120 --> 50:11.440
So you follow the official method

50:11.440 --> 50:15.640
as opposed to whatever else you read on some internet website.

50:15.640 --> 50:17.600
Don't do that.

50:17.600 --> 50:19.040
Always follow the official method.

50:19.040 --> 50:19.760
It's much better.

50:19.760 --> 50:26.080
Let me mute it.

50:32.480 --> 50:36.520
So I think Docker got installed.

50:36.520 --> 50:40.480
Then we will run, test it to see if it runs.

50:40.480 --> 50:41.640
I think it should run.

50:41.640 --> 50:44.320
But this pseudo thing is what I don't like.

50:44.320 --> 50:48.360
So I don't want to run pseudo for common usage.

50:48.360 --> 50:51.080
You should not use pseudo, generally speaking.

50:51.080 --> 50:52.840
Pseudo is avoidable.

50:52.840 --> 50:56.320
Pseudo is like what is called Superman, no, no, no.

50:56.320 --> 50:58.600
Spider-Man, Spider-Man.

50:58.600 --> 51:02.280
Uncle Ben says to Spider-Man.

51:02.280 --> 51:05.600
This challenge, I just went a couple of minutes back.

51:05.600 --> 51:08.680
I've asked my colleague also to join Sumit Muchhal.

51:08.680 --> 51:10.360
He is in the waiting room.

51:10.360 --> 51:10.840
I see.

51:10.840 --> 51:11.880
OK, let him in.

51:11.880 --> 51:16.400
I don't hear the, I admitted him.

51:16.400 --> 51:18.240
So he's coming in.

51:18.240 --> 51:19.440
OK, sure.

51:19.440 --> 51:20.760
I think he should be in now.

51:20.760 --> 51:25.600
So what I was talking to you about is pseudo.

51:25.600 --> 51:30.080
And pseudo is Uncle Ben telling Spider-Man,

51:30.080 --> 51:34.200
with great power comes great responsibility.

51:34.200 --> 51:36.800
So pseudo is like a superpower.

51:36.800 --> 51:38.480
Don't abuse it.

51:38.480 --> 51:41.400
Don't misuse it.

51:41.400 --> 51:42.280
That's the key.

51:42.280 --> 51:44.560
So that's what I want to talk about next,

51:44.560 --> 51:48.120
is this command asks you to run pseudo.

51:48.120 --> 51:49.160
You can run it.

51:49.160 --> 51:50.920
It doesn't hurt.

51:50.920 --> 51:52.640
So let's go run it first.

51:52.640 --> 51:55.000
So it says I'm unable to find Docker image,

51:55.000 --> 51:56.040
and so something happened.

51:56.040 --> 51:57.760
And it succeeded, by the way.

51:57.760 --> 52:00.680
Whatever it wanted to do, Docker ran successfully.

52:00.680 --> 52:04.240
But if you run Docker like this, it runs.

52:04.240 --> 52:10.760
So the idea of pseudo is simply this xkcd pseudo.

52:10.760 --> 52:13.520
Let's read this comic.

52:13.520 --> 52:14.720
The comic is like this.

52:14.720 --> 52:16.320
It's a cartoon, by the way.

52:16.320 --> 52:20.200
It's a meme in there.

52:20.200 --> 52:24.000
Make me a sandwich.

52:24.000 --> 52:27.040
This person on the sofa says, make me a sandwich.

52:27.040 --> 52:29.720
The other person says, what?

52:29.720 --> 52:33.040
Make it yourself.

52:33.040 --> 52:34.560
Then the other person on the sofa says,

52:34.560 --> 52:37.040
pseudo, make me a sandwich.

52:37.040 --> 52:39.400
And the other person says, OK.

52:39.400 --> 52:42.120
You see the difference with pseudo?

52:42.120 --> 52:44.360
This is a classic pseudo joke, by the way,

52:44.360 --> 52:45.480
if you do not know.

52:45.480 --> 52:48.280
That's what pseudo is, super power.

52:48.280 --> 52:50.640
And so with great power comes great responsibility.

52:50.640 --> 52:54.960
And so we just finished installing Docker.

52:54.960 --> 52:58.240
You can, there are some post installation steps here.

52:58.240 --> 53:01.200
After you install, there are good things to do.

53:01.200 --> 53:03.080
You should do that.

53:03.080 --> 53:05.400
Take, for example, here.

53:09.520 --> 53:13.880
Then here.

53:13.880 --> 53:15.480
There is meaning to every action you do.

53:15.480 --> 53:17.000
So you have to understand what these meanings are.

53:17.000 --> 53:18.760
So I'm not going into detail about what

53:18.760 --> 53:19.760
those things actually do.

53:19.760 --> 53:22.240
If you ask me a question, I will answer them.

53:22.240 --> 53:24.240
If you don't ask me, you have to read yourself.

53:28.440 --> 53:32.200
And I think that concludes our setup and installation

53:32.200 --> 53:34.760
and also the post installation steps of installing Docker

53:34.760 --> 53:37.960
Engine using the formal documentation.

53:37.960 --> 53:43.440
Having seen that, I will now proceed to the next step.

53:43.440 --> 53:45.920
Now that we have Docker in this machine

53:45.920 --> 53:48.080
and we have one image called hello world there already

53:48.080 --> 53:49.640
on that cloud machine.

53:49.640 --> 53:53.240
I want to bring my image there to the cloud machine.

53:53.240 --> 53:55.640
So how do I bring my image?

53:55.640 --> 54:00.880
I go to my registry, Docker Hub, line number 7,

54:00.880 --> 54:03.360
and make a copy of that.

54:03.360 --> 54:05.160
These two lines, 6 and 7.

54:05.160 --> 54:07.920
And instead of push, I'll say, pull.

54:10.840 --> 54:12.280
Like that.

54:12.280 --> 54:18.280
And so let's begin bringing that image from Docker Hub.

54:18.280 --> 54:20.480
It should pull.

54:20.480 --> 54:21.880
It pulled.

54:21.880 --> 54:24.280
That means we have two images now.

54:24.280 --> 54:26.800
One image is called hello world and the other one

54:26.800 --> 54:28.960
is hello Sanjay.

54:28.960 --> 54:31.920
Actually, the full name for that is not just hello Sanjay.

54:31.920 --> 54:37.760
It is my login name in Docker Hub followed by hello Sanjay.

54:37.760 --> 54:41.040
That's what you see here.

54:41.040 --> 54:45.880
So that image that I created in my home sent to Docker Hub.

54:45.880 --> 54:48.320
Docker Hub was able to pull it.

54:48.320 --> 54:49.800
Sorry, our machine in the cloud was

54:49.800 --> 54:52.080
able to pull it from Docker Hub.

54:52.080 --> 54:53.240
How did these things flow?

54:53.240 --> 54:54.160
Let's go check.

54:54.160 --> 54:57.080
I'll draw a picture.

54:57.080 --> 55:02.440
I created an image here in my home.

55:02.440 --> 55:03.800
And I pushed it to Docker Hub.

55:07.160 --> 55:09.280
Then I went to a cloud.

55:09.280 --> 55:11.920
Let's call it Headsnod.

55:11.920 --> 55:13.480
Created a machine there.

55:13.480 --> 55:16.880
And in that machine, I said, pull it.

55:16.880 --> 55:19.680
So it pulls.

55:19.680 --> 55:25.440
I also pushed this image to my own registry.

55:25.440 --> 55:30.760
Can I pull that image from my registry to the cloud?

55:30.760 --> 55:33.360
The answer is yes.

55:33.360 --> 55:37.800
As long as I'm able to pass a login and password.

55:37.800 --> 55:40.600
Because this is my own private registry

55:40.600 --> 55:43.560
that I run it myself locally here.

55:43.560 --> 55:47.040
And it is accessible only to me with a login and password

55:47.040 --> 55:50.320
that I have chosen for here.

55:50.320 --> 55:52.520
And so just like you have a Docker Hub login password,

55:52.520 --> 55:55.960
you will use that to pull and push and all that.

55:55.960 --> 56:00.200
Everything I do is like my own setup.

56:00.200 --> 56:03.680
It's completely disconnected from anything on the planet.

56:03.680 --> 56:04.840
I have my own cloud.

56:04.840 --> 56:06.520
Think of it that way.

56:06.520 --> 56:10.360
And so more people coming in, apparently.

56:10.360 --> 56:13.480
I think people get up whenever they feel like it.

56:13.480 --> 56:15.760
That's OK.

56:15.760 --> 56:18.400
I think it is kind of too early in India.

56:18.400 --> 56:18.920
So it's OK.

56:18.920 --> 56:21.000
It's accepted.

56:21.000 --> 56:25.800
So this image flew from here to here,

56:25.800 --> 56:27.200
and then from here to there.

56:27.200 --> 56:28.840
So we have it here now.

56:28.840 --> 56:33.040
So before I go into this other route, we'll do that later.

56:33.040 --> 56:37.640
Let's go play with this what we have in our hand first.

56:37.640 --> 56:43.720
So we have that image available to us in our cloud machine.

56:43.720 --> 56:45.200
We want to run it.

56:45.200 --> 56:46.520
How do you run it?

56:46.520 --> 56:47.880
Running is the same way.

56:47.880 --> 56:52.000
Like line numbers, where is that?

56:56.360 --> 56:58.640
32, 32.

56:58.640 --> 57:01.280
Well, I modify a little bit.

57:01.280 --> 57:08.520
Let's call it this.

57:08.520 --> 57:11.680
That's how you run it in a cloud setup.

57:11.680 --> 57:17.920
I run it locally, like 36, line 36.

57:17.920 --> 57:19.560
And I have some custom modifications

57:19.560 --> 57:21.280
from my home setup, so I don't want

57:21.280 --> 57:23.400
to worry about those aspects late right now.

57:23.400 --> 57:27.920
I will just run it like line number 32 in the cloud,

57:27.920 --> 57:29.600
like that.

57:29.600 --> 57:32.120
And then check what is running.

57:32.120 --> 57:34.160
And you see that there is a hello Docker that

57:34.160 --> 57:37.720
exited five minutes ago because I ran that command.

57:37.720 --> 57:39.720
And we have something else here running,

57:39.720 --> 57:41.720
which we wanted it to run.

57:41.720 --> 57:45.200
It is running currently and up and running for like two

57:45.200 --> 57:46.440
seconds.

57:46.440 --> 57:49.000
And it is currently mapped to port number 80

57:49.000 --> 57:51.240
as we expect it to be.

57:51.240 --> 57:52.560
Beautiful.

57:52.560 --> 57:54.240
So what's the next idea?

57:54.240 --> 57:56.280
It apparently is running.

57:56.280 --> 57:57.600
So let's go test it.

57:57.600 --> 58:03.600
Is it actually running in this machine at that IP address?

58:03.600 --> 58:05.320
Is it running for real?

58:05.320 --> 58:06.880
That's what I want to check.

58:06.880 --> 58:10.000
Are you just telling me something that should be

58:10.000 --> 58:11.080
or is it actually running?

58:11.080 --> 58:12.800
So show me what you have.

58:12.800 --> 58:17.560
So I'll open up that IP address with an HTTP protocol

58:17.560 --> 58:19.360
and hit it.

58:19.360 --> 58:22.040
And we get the result we expect.

58:22.040 --> 58:24.240
Hello, Sanjay.

58:24.240 --> 58:27.440
So it ran in the cloud.

58:27.440 --> 58:33.800
Now, what I want to say is that you

58:33.800 --> 58:38.520
can change whatever you want in your design and do it again.

58:38.520 --> 58:44.000
For example, I will go to my index.

58:44.000 --> 58:51.280
And this time, say, hello.

58:51.280 --> 58:53.360
Who's the new person just joined?

58:53.360 --> 58:54.160
What's his name?

58:54.160 --> 58:55.280
Sumit.

58:55.280 --> 58:56.920
Sumit.

58:56.920 --> 58:57.560
Hello, Sumit.

58:57.560 --> 58:59.280
I'll make it hello, Sumit now.

58:59.280 --> 59:02.840
So I did modify my code, the index file.

59:02.840 --> 59:07.480
And then I will execute the steps

59:07.480 --> 59:10.960
that I have in mind, which is simple.

59:10.960 --> 59:16.160
Build the Docker image with the Docker hub name line number 4.

59:16.160 --> 59:17.800
I will come out of that heads not cloud,

59:17.800 --> 59:20.000
by the way, exit from the cloud.

59:20.000 --> 59:29.520
But before I exit, let me clean up Docker RM-F.

59:29.520 --> 59:32.440
Typing mistake.

59:32.440 --> 59:33.800
And it kills some things.

59:33.800 --> 59:37.040
Let's go see what it killed.

59:37.040 --> 59:38.120
Did it kill properly?

59:38.120 --> 59:39.200
Yes, it did.

59:39.200 --> 59:41.440
And what are the images available there?

59:41.440 --> 59:42.040
Two images.

59:42.040 --> 59:43.440
Let's go delete both these images

59:43.440 --> 59:44.640
so that there's no confusion.

59:44.640 --> 59:50.760
So Docker RMI, this image ID, and also that image ID.

59:50.760 --> 59:52.760
So let's kill them all.

59:52.760 --> 59:53.600
Nice.

59:53.600 --> 59:55.000
And what do we have there?

59:55.000 --> 59:58.880
No images and no processes.

59:58.880 --> 01:00:00.000
Clean.

01:00:00.000 --> 01:00:01.320
OK, exit.

01:00:01.320 --> 01:00:03.560
Back to my machine.

01:00:03.560 --> 01:00:06.000
In this machine, what do I have?

01:00:06.000 --> 01:00:09.200
I have an old image, which contains hello, Sanjay.

01:00:09.200 --> 01:00:13.280
I want to make it hello, Sumit, like this.

01:00:13.280 --> 01:00:16.680
So I will have to build new images.

01:00:16.680 --> 01:00:18.920
How do you build a new image?

01:00:18.920 --> 01:00:24.560
You run line number 4 like that and take it to the command line

01:00:24.560 --> 01:00:25.800
and run it.

01:00:25.800 --> 01:00:27.200
It builds.

01:00:27.200 --> 01:00:28.360
Nice.

01:00:28.360 --> 01:00:31.600
What do we do next?

01:00:31.600 --> 01:00:36.480
We push that image to wherever we feel like,

01:00:36.480 --> 01:00:38.840
like we are currently dealing with Docker Hub.

01:00:38.840 --> 01:00:41.840
So we'll push it to Docker Hub, like line number 7.

01:00:41.840 --> 01:00:44.760
And this time, the push will contain the name Sumit

01:00:44.760 --> 01:00:47.040
as opposed to Sanjay.

01:00:47.040 --> 01:00:50.040
So it pushes.

01:00:50.040 --> 01:00:52.360
You will see most of the layers already exist.

01:00:52.360 --> 01:00:57.120
The only thing that is pushed is just this layer.

01:00:59.840 --> 01:01:02.600
Every other layer already exists because it's

01:01:02.600 --> 01:01:05.080
identical between Sumit and Sanjay.

01:01:05.080 --> 01:01:09.240
So what it did here is removed Sanjay and put Sumit there.

01:01:09.240 --> 01:01:11.560
That's the only layer that was pushed.

01:01:11.560 --> 01:01:14.560
Everything else already existed because we did not change any,

01:01:14.560 --> 01:01:16.120
just one layer.

01:01:16.120 --> 01:01:17.280
So pushing was efficient.

01:01:20.960 --> 01:01:25.160
Next, I want to take that image and send it

01:01:25.160 --> 01:01:28.880
to the cloud, for which I need to go to the cloud.

01:01:28.880 --> 01:01:30.960
So here is how you go.

01:01:30.960 --> 01:01:32.200
SSH to the cloud.

01:01:32.200 --> 01:01:33.800
Now we are connected there.

01:01:33.800 --> 01:01:36.200
In that cloud, we have this image.

01:01:36.200 --> 01:01:37.560
I already deleted them.

01:01:37.560 --> 01:01:39.360
So we have no images there.

01:01:39.360 --> 01:01:43.240
So I want to bring that image from Docker Hub over to my cloud.

01:01:43.240 --> 01:01:44.520
How do I do that?

01:01:44.520 --> 01:01:48.560
I pull line number 11.

01:01:48.560 --> 01:01:49.760
And I run it.

01:01:49.760 --> 01:01:51.240
So it pulls.

01:01:51.240 --> 01:01:54.640
When it pulls this time, it will come with Sumit.

01:01:54.640 --> 01:01:56.520
And it came.

01:01:56.520 --> 01:01:58.720
And I will run now.

01:01:58.720 --> 01:02:00.000
I will run.

01:02:00.000 --> 01:02:00.520
How do you run?

01:02:05.040 --> 01:02:07.960
How do you run?

01:02:07.960 --> 01:02:12.160
You run it like line number 32, like this.

01:02:12.160 --> 01:02:17.600
So you copy and execute.

01:02:17.600 --> 01:02:25.240
It is running on port number 80 on the machine in the cloud,

01:02:25.240 --> 01:02:29.200
Heznar cloud, Heznar cloud.

01:02:29.200 --> 01:02:32.000
This is the port on the container.

01:02:32.000 --> 01:02:32.800
Which container?

01:02:32.800 --> 01:02:34.320
This container.

01:02:34.320 --> 01:02:38.280
It is running our custom created image.

01:02:38.280 --> 01:02:41.520
And it's up and running for two seconds or more.

01:02:41.520 --> 01:02:45.680
And this mapping is between port on the machine,

01:02:45.680 --> 01:02:47.880
port on the container.

01:02:47.880 --> 01:02:49.280
That's the mapping.

01:02:49.280 --> 01:02:51.520
So now we should see, hello, Sumit,

01:02:51.520 --> 01:02:56.960
when we visit that IP address on a HTTP protocol.

01:02:56.960 --> 01:03:00.240
So let's open browser and refresh.

01:03:00.240 --> 01:03:01.640
And you see Sumit.

01:03:01.640 --> 01:03:03.360
That's simple as that.

01:03:03.360 --> 01:03:04.440
Any questions?

01:03:09.000 --> 01:03:12.080
No questions?

01:03:12.080 --> 01:03:14.840
Was I absolutely clear about what I was doing?

01:03:14.840 --> 01:03:15.520
That was amazing.

01:03:19.400 --> 01:03:22.560
Nobody wants to say anything, and that's OK.

01:03:22.560 --> 01:03:25.880
Let's check time, because I tend to forget

01:03:25.880 --> 01:03:29.040
what time we have spent.

01:03:29.040 --> 01:03:31.360
So it is 8.39.

01:03:31.360 --> 01:03:33.120
We started at 7.30.

01:03:33.120 --> 01:03:35.040
And so it's about an hour, more than an hour.

01:03:35.040 --> 01:03:38.200
So if you have a specific question about something else,

01:03:38.200 --> 01:03:40.720
like how do you build a complex application,

01:03:40.720 --> 01:03:44.440
or how do you use something different, ask that.

01:03:44.440 --> 01:03:46.720
If you don't ask, I'll do whatever I feel like.

01:03:46.720 --> 01:03:48.120
OK, go ahead.

01:03:48.120 --> 01:03:52.000
So this is Sumit.

01:03:52.000 --> 01:03:52.960
Hi.

01:03:52.960 --> 01:03:54.440
So I have a complex question.

01:03:54.440 --> 01:03:57.040
Basically, let's say we have a legacy application which

01:03:57.040 --> 01:03:59.600
is deployed to WebSphere.

01:03:59.600 --> 01:04:02.440
We don't want to migrate that to Tomcat for documentation

01:04:02.440 --> 01:04:04.560
purpose, but we want to dockerize that application

01:04:04.560 --> 01:04:07.920
and run it in a WebSphere itself as a Docker image.

01:04:07.920 --> 01:04:09.680
How should we approach that?

01:04:09.680 --> 01:04:10.680
Don't.

01:04:10.680 --> 01:04:12.120
That's not how you do it.

01:04:12.120 --> 01:04:13.160
You actually consider it.

01:04:13.160 --> 01:04:14.760
I know.

01:04:14.760 --> 01:04:18.400
But that's the expectation from our customers.

01:04:18.400 --> 01:04:20.520
So we got to fulfill and work with the customer

01:04:20.520 --> 01:04:23.240
until they migrated to Tomcat, and everyone has a budget

01:04:23.240 --> 01:04:24.800
and other things.

01:04:24.800 --> 01:04:27.520
So definitely, we are actually doing a couple

01:04:27.520 --> 01:04:29.800
of applications like this, and we are

01:04:29.800 --> 01:04:31.320
categorizing it for a WebSphere.

01:04:31.320 --> 01:04:33.960
But I just wanted to know your opinion.

01:04:33.960 --> 01:04:35.880
I understand one part is we shouldn't do it.

01:04:35.880 --> 01:04:36.440
We agree.

01:04:36.440 --> 01:04:39.080
But if we have to approach for some reason,

01:04:39.080 --> 01:04:41.440
what should be the strategy?

01:04:41.440 --> 01:04:42.120
I'll answer it.

01:04:42.120 --> 01:04:42.720
I'll answer it.

01:04:42.720 --> 01:04:43.240
Hold on.

01:04:43.240 --> 01:04:43.760
Hold on.

01:04:43.760 --> 01:04:46.640
I think somebody is calling me from India.

01:04:46.640 --> 01:04:47.600
These are my parents.

01:04:47.600 --> 01:04:49.280
So I'll just tell them briefly.

01:04:49.280 --> 01:04:50.000
We'll stand by.

01:04:50.000 --> 01:04:50.500
Sure.

01:04:50.500 --> 01:04:51.000
Mm-hmm.

01:04:54.200 --> 01:04:54.920
Hello.

01:04:54.920 --> 01:04:55.880
I'm in a meeting.

01:04:55.880 --> 01:04:56.960
I'll talk to you later.

01:04:56.960 --> 01:04:57.560
I'm in a meeting.

01:04:57.560 --> 01:04:58.480
I'll talk to you later.

01:04:58.480 --> 01:05:02.040
OK.

01:05:02.040 --> 01:05:03.600
So let me understand the question.

01:05:03.600 --> 01:05:06.720
The question you're asking me is like this.

01:05:06.720 --> 01:05:09.160
It's like this.

01:05:09.160 --> 01:05:11.760
And correct me if I'm wrong.

01:05:11.760 --> 01:05:12.720
Notes.

01:05:12.720 --> 01:05:14.840
Where are the notes?

01:05:14.840 --> 01:05:15.520
Here.

01:05:15.520 --> 01:05:17.920
The question you're asking me is you have some application

01:05:17.920 --> 01:05:18.200
under it.

01:05:18.200 --> 01:05:19.960
You don't want to dockerize it, but still

01:05:19.960 --> 01:05:22.000
want to run it in a container, right?

01:05:22.000 --> 01:05:22.880
Is that what you want?

01:05:22.880 --> 01:05:24.280
No, we want to dockerize it.

01:05:24.280 --> 01:05:24.800
No, no, no.

01:05:24.800 --> 01:05:28.600
So what I have is an app which is running on a WebSphere

01:05:28.600 --> 01:05:29.960
server today.

01:05:29.960 --> 01:05:31.480
Mm-hmm.

01:05:31.480 --> 01:05:33.000
OK.

01:05:33.000 --> 01:05:33.920
And what's underneath?

01:05:33.920 --> 01:05:38.680
We want to containerize and run in a WebSphere container

01:05:38.680 --> 01:05:39.640
as an image, basically.

01:05:39.640 --> 01:05:41.840
Basically, we want to dockerize the application

01:05:41.840 --> 01:05:45.360
and use WebSphere as a server, as a docker image,

01:05:45.360 --> 01:05:48.080
so that we don't need to use the full feature of WebSphere.

01:05:48.080 --> 01:05:51.160
But we can use their servers, which

01:05:51.160 --> 01:05:53.240
comes for a Liberty server, basically,

01:05:53.240 --> 01:05:56.320
which comes from a WebSphere as a docker purpose.

01:05:56.320 --> 01:05:56.920
Hold on, hold on.

01:05:56.920 --> 01:05:58.680
I think I understand a little bit more.

01:05:58.680 --> 01:06:00.360
Tell me a little bit what you have.

01:06:00.360 --> 01:06:02.160
So I think I have a solution for you.

01:06:02.160 --> 01:06:03.520
So you have an application.

01:06:03.520 --> 01:06:04.560
You have a WebSphere.

01:06:04.560 --> 01:06:07.360
What do you have underneath?

01:06:07.360 --> 01:06:10.480
So we have a DB2 as a database, let's say,

01:06:10.480 --> 01:06:12.880
which is our applications are connecting.

01:06:12.880 --> 01:06:15.560
And this is pretty much a pretty simple web application, right?

01:06:15.560 --> 01:06:19.720
So you have either you can say Spring Boot or a simple JSP

01:06:19.720 --> 01:06:23.960
servlet application, that's the application architecture, right?

01:06:23.960 --> 01:06:24.840
And it's a pure play.

01:06:24.840 --> 01:06:28.080
You will have some UI, some back end services, and database.

01:06:28.080 --> 01:06:28.800
That's it.

01:06:28.800 --> 01:06:31.880
Nothing more complex than that.

01:06:31.880 --> 01:06:34.640
What else is below that, like up to the hardware level?

01:06:34.640 --> 01:06:36.600
Go down.

01:06:36.600 --> 01:06:41.920
So these are basically deployed on on-prem servers, basically.

01:06:41.920 --> 01:06:44.480
So you will have a machine with a Linux machine,

01:06:44.480 --> 01:06:46.680
and WebSphere are installed on that.

01:06:46.680 --> 01:06:49.360
And then you will just go to the WebSphere console

01:06:49.360 --> 01:06:52.920
and deploy those applications in the current environment.

01:06:52.920 --> 01:06:55.880
So this is OS that you have, and then you put WebSphere

01:06:55.880 --> 01:07:00.080
directly on the OS is the current design.

01:07:00.080 --> 01:07:00.760
That's true.

01:07:00.760 --> 01:07:02.840
Yeah, and I may not be 100% sure,

01:07:02.840 --> 01:07:05.280
because WebSphere is managed by an infrastructure team.

01:07:05.280 --> 01:07:07.000
So how they put it on the servers,

01:07:07.000 --> 01:07:09.680
that I may not be aware, but it is deployed on a,

01:07:09.680 --> 01:07:13.160
I will say, Linux server, where we have a console access,

01:07:13.160 --> 01:07:15.440
where we go and deploy our application once we build it.

01:07:15.440 --> 01:07:17.240
It's a manual process today.

01:07:17.240 --> 01:07:17.760
Yes.

01:07:17.760 --> 01:07:20.760
So now, in the other scenario, what do you want?

01:07:20.760 --> 01:07:22.840
Let me understand that piece also.

01:07:22.840 --> 01:07:23.400
Yes.

01:07:23.400 --> 01:07:27.040
So basically, we are reaching to the end of life for WebSphere.

01:07:27.040 --> 01:07:30.880
So that's our aim to remove the WebSphere dependency.

01:07:30.880 --> 01:07:35.080
So what we want to do is, as we have a lot of legacy

01:07:35.080 --> 01:07:38.400
applications, we cannot convert them to Tomcat today,

01:07:38.400 --> 01:07:40.440
because that will take a lot of time.

01:07:40.440 --> 01:07:43.000
With the limited time, we want to containerize

01:07:43.000 --> 01:07:46.000
these applications so that even from on-prem,

01:07:46.000 --> 01:07:49.000
we can run it on an AWS cloud using a Liberty server.

01:07:49.000 --> 01:07:50.880
That's our aim.

01:07:50.880 --> 01:07:53.880
So I'll tell you a trick to experiment with.

01:07:53.880 --> 01:07:55.960
I'll tell you how to experiment.

01:07:55.960 --> 01:07:57.840
What you can consider experimenting,

01:07:57.840 --> 01:08:02.480
begin experimenting, is take your WebSphere, simple thing,

01:08:02.480 --> 01:08:06.880
and run it in a Docker container by writing a Docker file.

01:08:06.880 --> 01:08:08.360
OK.

01:08:08.360 --> 01:08:10.800
And then you add your app on top.

01:08:10.800 --> 01:08:14.760
So write this Docker file containing WebSphere itself.

01:08:14.760 --> 01:08:16.440
I have never done this action this way,

01:08:16.440 --> 01:08:20.320
but this is something I want you to test, is to experiment

01:08:20.320 --> 01:08:23.920
and figure out if you can run WebSphere in a Docker file.

01:08:23.920 --> 01:08:25.320
How do you do that?

01:08:25.320 --> 01:08:27.000
You cheat.

01:08:27.000 --> 01:08:37.400
And you say, run WebSphere in Docker file.

01:08:37.400 --> 01:08:38.840
And there it is.

01:08:38.840 --> 01:08:40.400
IBM says something, something.

01:08:40.400 --> 01:08:42.800
So you read IBM's methods.

01:08:42.800 --> 01:08:45.480
So there is some write-up here, right?

01:08:45.480 --> 01:08:47.560
IBM Cloud, God knows what.

01:08:47.560 --> 01:08:51.160
But this is big company nonsense.

01:08:51.160 --> 01:08:53.680
So I'll go away from that.

01:08:53.680 --> 01:08:54.880
I'll go with Docker Hub.

01:08:54.880 --> 01:08:57.360
It's much cleaner, usually.

01:08:57.360 --> 01:09:00.520
So somebody is running traditional Docker WebSphere,

01:09:00.520 --> 01:09:02.600
and they have a Docker build method.

01:09:02.600 --> 01:09:05.760
And then let's go click the Docker build.

01:09:05.760 --> 01:09:09.200
And so let's select some version number that you like.

01:09:09.200 --> 01:09:11.880
Do you have a version number in mind?

01:09:11.880 --> 01:09:13.520
Yeah, version nine should be fine.

01:09:13.520 --> 01:09:14.480
Yeah, nine.

01:09:14.480 --> 01:09:16.240
So here is your Docker file.

01:09:16.240 --> 01:09:19.720
You copy, paste, and experiment.

01:09:19.720 --> 01:09:22.120
That's how you build it, right?

01:09:22.120 --> 01:09:25.640
So you take this, use this Docker file, experiment.

01:09:25.640 --> 01:09:27.400
Let's see what it does at the end.

01:09:27.400 --> 01:09:32.320
Yeah, it is running your server for you.

01:09:32.320 --> 01:09:34.000
So this is the cheat code.

01:09:34.000 --> 01:09:38.880
You see if this, so by the way, I should clarify this.

01:09:38.880 --> 01:09:39.800
This is legalese.

01:09:39.800 --> 01:09:42.960
So I'm going to say that out.

01:09:42.960 --> 01:09:45.040
If you work for a company, if you're

01:09:45.040 --> 01:09:46.720
a student learning something, you

01:09:46.720 --> 01:09:48.360
don't have to worry about these things.

01:09:48.360 --> 01:09:50.600
But if you're a company, it sounds like you are.

01:09:50.600 --> 01:09:53.480
So you should worry about talking to your attorney.

01:09:53.480 --> 01:09:54.680
Don't listen to what I say.

01:09:54.680 --> 01:09:56.920
Because I speak like whatever I feel like.

01:09:56.920 --> 01:10:00.040
I am not your attorney, and I'm not even your advisor.

01:10:00.040 --> 01:10:03.160
So just stating that very clearly,

01:10:03.160 --> 01:10:06.840
that I am not representing you or your company or your whatever.

01:10:06.840 --> 01:10:08.800
I'm not your attorney.

01:10:08.800 --> 01:10:10.800
And have you understood that?

01:10:10.800 --> 01:10:15.720
Talk to your attorney whether you should copy this file.

01:10:15.720 --> 01:10:19.480
Because what I am telling you is how to potentially experiment.

01:10:19.480 --> 01:10:23.040
So talk to your lawyers and see if you can use this file,

01:10:23.040 --> 01:10:27.400
modify it, test it, run it, and ask me questions.

01:10:27.400 --> 01:10:28.560
I'll answer them.

01:10:28.560 --> 01:10:32.600
But I'll answer only questions as to what can be done,

01:10:32.600 --> 01:10:35.720
how to fix a problem, how to get it to work,

01:10:35.720 --> 01:10:40.040
but whether you should do it or you should not is not my problem.

01:10:40.040 --> 01:10:42.000
Don't come after me.

01:10:42.000 --> 01:10:43.160
I totally understand.

01:10:43.160 --> 01:10:43.920
I totally understand.

01:10:43.920 --> 01:10:45.400
Yeah, definitely.

01:10:45.400 --> 01:10:48.320
So I was looking for if you have done this type of work

01:10:48.320 --> 01:10:50.720
and if you have suggestions.

01:10:50.720 --> 01:10:53.200
So basically, I think it is more of an experiment which

01:10:53.200 --> 01:10:58.400
everybody needs to do as a part of this forum, which I totally

01:10:58.400 --> 01:10:58.920
agree.

01:10:58.920 --> 01:11:01.320
So I got my answer, Nilesh.

01:11:01.320 --> 01:11:03.440
Usually, I don't talk to company people.

01:11:03.440 --> 01:11:05.440
I usually talk to individuals.

01:11:05.440 --> 01:11:08.720
I did not know you were going to ask me a business question.

01:11:08.720 --> 01:11:11.320
It's not a business question, but it's more of a design

01:11:11.320 --> 01:11:11.960
question.

01:11:11.960 --> 01:11:14.480
How do you solve those type of problems?

01:11:14.480 --> 01:11:16.040
It's a thought process I'm trying to.

01:11:16.040 --> 01:11:17.480
It's not that something we are going

01:11:17.480 --> 01:11:18.840
to copy paste from somewhere.

01:11:18.840 --> 01:11:21.200
We have already done this type of project.

01:11:21.200 --> 01:11:22.720
But I wanted to understand if you

01:11:22.720 --> 01:11:27.080
have a better way of approaching this problem.

01:11:27.080 --> 01:11:28.800
The ideal way is to take straight

01:11:28.800 --> 01:11:32.360
to a proper Java solution or whatever languages

01:11:32.360 --> 01:11:36.560
you are using and run it the native way that Oracle

01:11:36.560 --> 01:11:37.360
would recommend.

01:11:37.360 --> 01:11:39.720
That's the right way.

01:11:39.720 --> 01:11:42.160
It's a JSP Java application, right?

01:11:42.160 --> 01:11:43.520
That's correct, yeah.

01:11:43.520 --> 01:11:46.080
So do the right way is what I would recommend.

01:11:46.080 --> 01:11:47.960
But interim hacks and experimentation,

01:11:47.960 --> 01:11:50.640
you can go like copy from this and put something,

01:11:50.640 --> 01:11:53.600
get the Tomcat running, put your application on top,

01:11:53.600 --> 01:11:56.360
connect it to the DB2 database, and get things to work.

01:11:56.360 --> 01:12:00.120
That's the interim step for experimentation in-house.

01:12:00.120 --> 01:12:00.720
Got it.

01:12:00.720 --> 01:12:01.640
It is possible.

01:12:01.640 --> 01:12:03.440
You can experiment totally.

01:12:03.440 --> 01:12:05.680
But check with your company, check with your attorney,

01:12:05.680 --> 01:12:09.560
check with the owners of your company, and figure it out.

01:12:09.560 --> 01:12:12.560
Don't bring my name in the company business.

01:12:12.560 --> 01:12:14.440
That's what I'm really telling you.

01:12:14.440 --> 01:12:15.280
OK?

01:12:15.280 --> 01:12:16.280
I hope you understand.

01:12:16.280 --> 01:12:16.800
Yes.

01:12:16.800 --> 01:12:18.520
Yes, I do.

01:12:18.520 --> 01:12:20.680
Awesome.

01:12:20.680 --> 01:12:24.120
Shailendra Gupta, this name sounds like a GSTI name.

01:12:24.120 --> 01:12:24.720
Is that right?

01:12:28.080 --> 01:12:29.120
Shailendra?

01:12:29.120 --> 01:12:31.880
Nilesh, I'm from Bhopal.

01:12:31.880 --> 01:12:34.560
Yeah.

01:12:34.560 --> 01:12:41.280
So if you go back, I'll say 25, 30 years back,

01:12:41.280 --> 01:12:47.320
I'm from Bhopal and met a couple of times earlier as well.

01:12:47.320 --> 01:12:48.840
OK, OK, OK, OK.

01:12:48.840 --> 01:12:50.120
Good, good.

01:12:50.120 --> 01:12:52.080
Maybe we are recording these things.

01:12:52.080 --> 01:12:56.080
So maybe we'll talk separately after the recordings are over.

01:12:56.080 --> 01:12:59.840
So let me then conclude the session discussion for today

01:12:59.840 --> 01:13:02.640
with a cautionary word again for Sumit,

01:13:02.640 --> 01:13:06.080
is whatever I just told you, it is purely for education

01:13:06.080 --> 01:13:08.560
and understanding and not for actual implementation.

01:13:08.560 --> 01:13:10.680
Don't take my advice as business advice.

01:13:10.680 --> 01:13:11.680
I am not your attorney.

01:13:11.680 --> 01:13:13.680
I am not your consultant.

01:13:13.680 --> 01:13:16.600
It's purely for educational and understanding purposes.

01:13:16.600 --> 01:13:20.040
Having said, I will now summarize and then

01:13:20.040 --> 01:13:21.000
close the recording.

01:13:21.000 --> 01:13:23.080
So summary was we took an image, sorry,

01:13:23.080 --> 01:13:27.560
we created an image from scratch like this, Docker file,

01:13:27.560 --> 01:13:31.200
build something, put an image, put an index file there,

01:13:31.200 --> 01:13:34.360
build our own image, post it to some Docker registry.

01:13:34.360 --> 01:13:37.600
I did not run my own registry right now,

01:13:37.600 --> 01:13:41.360
but I did at least half the way we were using my own registry.

01:13:41.360 --> 01:13:46.280
But then we switched to Docker Hub and the whole thing ran.

01:13:46.280 --> 01:13:52.160
And what you see as the end result is simply this.

01:13:52.160 --> 01:13:53.160
That's what we wanted.

01:13:53.160 --> 01:13:54.280
That's what we got.

01:13:54.280 --> 01:13:56.680
So with that, I will conclude the session for today,

01:13:56.680 --> 01:13:57.920
stop the recording.

01:13:57.920 --> 01:14:02.040
You should suggest to me what should be the session topic

01:14:02.040 --> 01:14:03.840
for the next week meeting.

01:14:03.840 --> 01:14:05.360
We run it every week.

01:14:05.360 --> 01:14:09.800
At the same time, whatever time is in your time zone,

01:14:09.800 --> 01:14:12.240
the same time every week, that's what we do.

01:14:12.240 --> 01:14:16.000
And the recordings show up in a Spotify podcast,

01:14:16.000 --> 01:14:17.120
in a video form.

01:14:17.120 --> 01:14:18.160
So that's what happens.

01:14:18.160 --> 01:14:20.680
With that, I will now stop the recording

01:14:20.680 --> 01:14:22.480
and we'll continue our conversation

01:14:22.480 --> 01:14:24.800
if you have a specific question of some sorts.

01:14:24.800 --> 01:14:26.160
So stopping the recording now.

01:14:26.160 --> 01:14:26.960
Thank you very much.

01:14:26.960 --> 01:14:27.640
Bye bye.

01:14:27.640 --> 01:14:51.080
I mean, don't go away, but bye bye.

The Cloud Seminar
Summary Confidently ship production cloud services like a genius ✨