Summary:
In this session, I walk through a live demo of using a reverse-proxy container and then running a plurality of other apps and databases also running in containers. I demonstrate how to persist the data in the applications by separating the data from the containers. I also walk through live examples of testing request and response while passing through the reverse-proxy.
I used this git repo in this session.
AI Generated Transcript
WEBVTT
00:00.000 --> 00:04.280
So I think we should get started since we are on a multiple
00:04.280 --> 00:08.400
time zones and lots of people from various places. So let's
00:08.400 --> 00:12.720
begin. Let's begin. So what I was talking about briefly here
00:12.720 --> 00:17.000
is this idea of, you know, this guy, Jeffrey. If you do know
00:17.000 --> 00:21.240
if you know him or not, I don't know. But this person is
00:21.240 --> 00:25.000
considered the father of AI, modern AI, Jeffrey Hinton, and
00:25.000 --> 00:28.080
it is his tweet on May 1st.
00:28.080 --> 00:32.520
Which is yesterday, and he says some New York Times News, you
00:32.520 --> 00:36.160
know implies that you left Google so you can criticize
00:36.160 --> 00:40.320
Google, but that's not the reason he says he did. He's so
00:40.320 --> 00:42.480
you could talk about dangers of AI.
00:43.560 --> 00:46.720
Without considering how it impacts Google, so Google is
00:46.720 --> 00:50.760
fine according to him. So he's talking about dangers of AI on
00:50.760 --> 00:53.600
one hand and then further below. Maybe I overreacted.
00:54.720 --> 00:55.160
So.
00:55.160 --> 00:59.840
Yeah, maybe maybe you have to read the detail on what his
00:59.840 --> 01:02.360
tweets are. And what he's trying to communicate.
01:03.040 --> 01:05.720
But. Bottom line is.
01:06.720 --> 01:11.200
We don't know that's the real bottom line. Nobody knows, so I
01:11.200 --> 01:13.640
think we should. We should start streaming.
01:14.360 --> 01:18.840
So the streaming thing that I run is actually goes out to
01:18.840 --> 01:22.280
multiple social media channels through a streamer, a streaming
01:22.280 --> 01:26.360
device that I have built using Docker and that streams. So I'm
01:26.360 --> 01:30.560
going to start that streaming and see if it actually works out
01:30.560 --> 01:35.280
OK. So here I go. I'm going to hit the stream now button.
01:36.120 --> 01:39.960
And see if it starts a stream on at least Twitter, Twitch,
01:39.960 --> 01:44.040
LinkedIn, three or three or four places. So I'm going to hit the
01:44.040 --> 01:47.880
button now and begin. So here we go. Starting the stream now
01:47.880 --> 01:53.200
and it should stream.
01:53.200 --> 01:57.120
So this is about to begin streaming and I think we should
01:57.120 --> 02:01.520
be streaming by now. So let us go check on Twitter to see if
02:01.520 --> 02:03.000
there's a notification on.
02:03.560 --> 02:07.800
Something like stream started so that once the stream starts we
02:07.800 --> 02:08.480
can ignore.
02:09.840 --> 02:13.640
Twitter itself. I think the stream didn't start yet.
02:13.640 --> 02:18.480
Not yet, so there's a. There's a like a delay in in.
02:19.040 --> 02:22.640
I think streaming started looks like streaming started. Let's go
02:22.640 --> 02:27.200
check. So on my profile on my page there should be a live
02:27.200 --> 02:30.920
stream method live stream message. Do I see it?
02:32.240 --> 02:35.960
Yet, yes, it started streaming, so streaming is working on
02:35.960 --> 02:38.200
Twitter. Let's check on LinkedIn.
02:38.200 --> 02:42.880
If LinkedIn is showing us a stream or not, let's go check
02:42.880 --> 02:46.840
that. LinkedIn should also show us a live stream happening
02:46.840 --> 02:51.240
right here on the notifications. Do you see that? Yes, it is.
02:51.240 --> 02:54.960
It is live. We're on live stream. We're talking about, you
02:54.960 --> 02:59.240
know, more Docker today, but before we, you know, I think I
02:59.240 --> 03:02.520
should just ignore the live stream people who are watching
03:02.520 --> 03:05.840
the live stream. This live stream is available to you on
03:05.840 --> 03:09.520
Spotify platforms. It will also get recorded by the way, and
03:09.520 --> 03:12.520
this stream after it gets recorded, it's becomes
03:12.520 --> 03:13.840
available to you.
03:14.400 --> 03:15.720
On Spotify.
03:16.480 --> 03:20.560
Spotify is a music service. It also has podcasts, so this is
03:20.560 --> 03:24.600
where the recordings show up and this is a video podcast. By
03:24.600 --> 03:28.800
the way, just so you know. So yes, you can see videos
03:28.800 --> 03:31.920
recordings from our sessions on to Spotify in this location.
03:31.920 --> 03:35.120
Look for cloud seminar on Spotify. You should be able to
03:35.120 --> 03:38.520
find all the previous recordings like for the last two or three
03:38.520 --> 03:40.880
sessions. I have these recordings available here like
03:40.880 --> 03:44.320
we show on the screen right now.
03:44.920 --> 03:48.760
You should be able to see it on the screen. I think so that's
03:48.760 --> 03:51.960
the Spotify podcast. You should be able to see your video
03:51.960 --> 03:54.680
recordings showing up right here, and if you don't see
03:54.680 --> 03:58.560
videos. Tweet at me because some people are reporting that they
03:58.560 --> 04:02.680
see only audio. No video that's potentially something is wrong,
04:02.680 --> 04:07.520
so I think I fixed it. So now you should be able to see
04:07.520 --> 04:11.520
videos like these more of these coming up showing up right here
04:11.520 --> 04:15.680
in Spotify after 24 hours from the live session live session is
04:15.680 --> 04:18.720
streaming to social media channels and people are actively
04:18.720 --> 04:21.840
participating in Microsoft Teams. So if you want to interact
04:21.840 --> 04:26.160
with me like one on one or many to one, we can do that. That's
04:26.160 --> 04:29.800
what we're doing. By the way, we have people are attending this
04:29.800 --> 04:33.200
session and we are going to begin discussing not bored, but
04:33.200 --> 04:36.400
Docker and Docker compose and Docker files and a little more
04:36.400 --> 04:39.600
little bit more detail about Docker as to how you actually
04:39.600 --> 04:42.480
manage creating images and you know managing your application
04:42.480 --> 04:46.720
sets and you know creating a set of services that you want to be
04:46.720 --> 04:50.240
able to use for your customers. So that's the underlying idea
04:50.240 --> 04:54.880
for today. So let's go back to some description of what the
04:54.880 --> 04:58.720
infrastructure I'm dealing with right now is. So here I have a
04:58.720 --> 05:04.400
machine that I I have it in my hand, which is a Macintosh.
05:05.360 --> 05:09.840
And. What I'm going to do right now is to make sure that
05:09.840 --> 05:12.960
everybody is able to see the screen full screen mode and
05:12.960 --> 05:16.040
then there's no conflict about how things are working out or
05:16.040 --> 05:19.320
how the screen is occupied with other people, not my screen. That
05:19.320 --> 05:23.200
should not be the issue today. I think I fixed that. So with that
05:23.200 --> 05:26.320
said, I want to suppress this little notification in the
05:26.320 --> 05:29.560
bottom left corner, lower thirds, and if you want to see
05:29.560 --> 05:33.280
me, you can see me in the corner or I can hide myself if
05:33.280 --> 05:37.480
you like. So it's totally up to you. If you if you look at my
05:37.480 --> 05:40.560
red, red, you know, red T shirt or not, tell me.
05:41.240 --> 05:44.560
I think you're only interested in more on what I describe as
05:44.560 --> 05:47.760
opposed to looking at my shirt. So let's go begin with that
05:47.760 --> 05:50.880
idea. So I have this Macintosh that I am in my hand.
05:50.880 --> 05:55.960
And then I also have a Linux machine here that Linux machine.
05:55.960 --> 06:03.360
I call it I Mac and it has an IP address of 192.168.1.10 that
06:03.360 --> 06:04.520
runs Docker.
06:06.520 --> 06:10.480
So I'm sitting here. I will connect to this machine and run
06:10.480 --> 06:14.560
whatever we want on this Docker machine. So that's the idea. So
06:14.560 --> 06:18.640
I have an exercise set created already for us to consume and
06:18.640 --> 06:22.760
that is what we will be using today. We use the same thing
06:22.760 --> 06:26.680
last time. We have lots of little exercises in that get
06:26.680 --> 06:28.960
repository, so I will just go and find it.
06:29.560 --> 06:31.040
And that get repo is.
06:32.240 --> 06:33.000
GitHub.
06:36.760 --> 06:39.480
Will be cloud genius.
06:40.280 --> 06:44.480
Slash Docker files. That's the repository I think.
06:44.480 --> 06:49.160
And it is slightly updated to include the latest images
06:49.160 --> 06:53.240
created by. Jason Wilder, who creates engine X proxy images.
06:53.240 --> 06:56.920
I updated those images and pushed new content to this
06:56.920 --> 06:59.840
repository already, so I'm going to take this link.
07:00.880 --> 07:05.240
From here and tweet it out to the Twitter stream that's going
07:05.240 --> 07:09.000
on so that people people are watching it live can actually.
07:09.000 --> 07:12.840
You know, understand what we are looking at. So the profile
07:12.840 --> 07:17.560
should show me in the stream and below that stream I'm going to
07:17.560 --> 07:22.400
tweet. We are using this get report today.
07:24.600 --> 07:27.680
And tweet. So that goes.
07:28.480 --> 07:32.560
Next, so I will now bring that get repository down to my Docker
07:32.560 --> 07:36.720
machine right here. That's what I want to bring it down here, so
07:36.720 --> 07:39.560
I will do exactly that. I'll bring up a.
07:39.560 --> 07:44.000
Command line and then actually I use Vegas Codium to connect to
07:44.000 --> 07:48.160
that machine using remote SSH. The way you do that is through
07:48.160 --> 07:50.360
this button. Remote Explorer button.
07:52.520 --> 07:55.320
This is how it looks like this button or remote Explorer. You
07:55.320 --> 07:58.360
click on that and then you connect to any of the machines
07:58.360 --> 08:01.960
you have in your office or your home or whatever. So I want to
08:01.960 --> 08:05.400
go to this machine, so that's where I want to go. So I connect
08:05.400 --> 08:07.800
like that. And then I open up that folder set.
08:07.800 --> 08:11.680
Now in that machine I will also open terminal on one side. So
08:11.680 --> 08:14.880
here we have terminal the command line. I will bring it
08:14.880 --> 08:18.560
down so that it becomes visible to you. Make it a little bit
08:18.560 --> 08:21.360
bigger and connect to that machine out there. The iMac
08:21.360 --> 08:24.480
machine I mentioned here. I have that folder called Docker files
08:24.480 --> 08:28.280
already available, which is not what I want to begin with, so I
08:28.280 --> 08:31.760
want to remove it so that I'm basically doing exactly the way
08:31.760 --> 08:35.760
you will have in a machine that you will be running on. So I'm
08:35.760 --> 08:39.480
going to open that Docker files folder completely and then get
08:39.480 --> 08:41.520
clone the whole thing again.
08:41.520 --> 08:45.480
From from this location so that.
08:46.200 --> 08:48.880
Clone copy clone link I copied and bring it here.
08:49.920 --> 08:53.480
So that Docker files folder comes down, so that's the folder
08:53.480 --> 08:57.400
now I have here. So it's a fresh clone from git repository.
08:58.000 --> 09:00.120
So now we're going to use it.
09:01.040 --> 09:02.880
And that repository shows up.
09:02.880 --> 09:05.080
In this location.
09:06.080 --> 09:08.800
Inside my iMac.
09:08.800 --> 09:11.640
Which is a Linux machine by the way, just so you know.
09:11.640 --> 09:17.200
So what I want to do now is to describe to you the.
09:17.200 --> 09:20.640
Simplest possible way to run some design, so I'll describe
09:20.640 --> 09:24.480
the design to use to what I'm going to implement and then
09:24.480 --> 09:27.960
then actually implemented like live. So that's the idea. So
09:27.960 --> 09:31.760
let's let's begin by explaining to you what I intend to do.
09:31.760 --> 09:36.880
And then I'll do it. What I intend to do is I want to run
09:36.880 --> 09:42.040
some simple service called who who am I?
09:42.880 --> 09:44.480
That's the container I want to run.
09:45.080 --> 09:50.440
And the only thing this container does is says I am.
09:51.560 --> 09:53.000
And then the container ID.
09:56.120 --> 09:58.880
That's all it emits on the output.
09:58.880 --> 10:02.120
On port number 8000 or some some port number right that
10:02.120 --> 10:05.480
it emits that that's the container. So I want to see the
10:05.480 --> 10:09.280
output here from that container, which means I need to run that
10:09.280 --> 10:12.040
container somewhere and I want to.
10:13.520 --> 10:17.240
You know, put this behind a reverse proxy.
10:19.080 --> 10:23.120
A reverse proxy is something that gives you ability to do a
10:23.120 --> 10:27.400
variety of things. One of them is to run multiple services like
10:27.400 --> 10:32.080
this is one and there are more and there are more. You can run
10:32.080 --> 10:34.400
these services behind a reverse proxy.
10:37.040 --> 10:39.600
And then this becomes the front end to the customer.
10:42.000 --> 10:46.680
That's the idea. So for right now in our context, what I will
10:46.680 --> 10:49.200
be doing is I will not have this.
10:51.200 --> 10:53.480
I will have only this one service.
10:53.480 --> 10:58.560
Running the who am I container, which shows me this output. I am.
10:59.760 --> 11:00.600
Container ID.
11:01.360 --> 11:05.800
And I will be this person looking at the reverse proxy.
11:06.360 --> 11:09.640
And so that reverse proxy itself is going to be another container.
11:13.400 --> 11:14.880
So these two containers we will have.
11:15.800 --> 11:19.360
This one and this one and we will connect them in a way we
11:19.360 --> 11:22.280
would want them to be connecting and then we'll interact with
11:22.280 --> 11:25.560
them to see if it actually works the way we wanted to be
11:25.560 --> 11:26.760
working. So here.
11:27.520 --> 11:28.280
I will.
11:29.480 --> 11:33.040
Just quickly cheat so I don't have to memorize the port
11:33.040 --> 11:36.280
numbers, but I'm going to looking at this code and I'll
11:36.280 --> 11:39.200
now remember what ports that using that they're using. This
11:39.200 --> 11:40.800
thing is using port number 8000.
11:41.920 --> 11:46.320
This thing runs on port number 80 and it maps to the actual
11:46.320 --> 11:47.120
machine I Mac.
11:47.120 --> 11:51.560
On also on port number 80 by default, so that's the mapping.
11:53.320 --> 11:57.560
And I want this reverse proxy to connect to this port on this
11:57.560 --> 12:00.240
container. That's what I would like to have.
12:01.240 --> 12:05.360
So this is the outlay of the or the design that I want to
12:05.360 --> 12:08.400
implement the way I would implement that design will be
12:08.400 --> 12:12.320
something like this. This is a compose file Docker compose.
12:12.320 --> 12:16.040
So here you see that there are two services.
12:18.200 --> 12:19.520
This is one of them.
12:20.400 --> 12:24.680
And this is another you will find by the way you will find
12:24.680 --> 12:26.520
this file in the step by step.
12:27.040 --> 12:31.120
Ocean inside your Docker files repository. That's where you
12:31.120 --> 12:32.640
will actually find it.
12:33.840 --> 12:37.080
So I mentioned these two containers. Let's go look at
12:37.080 --> 12:38.280
them one more time.
12:38.280 --> 12:40.240
So I'm going to it is my ink.
12:42.600 --> 12:46.360
And here are those two containers. This is one of them.
12:46.360 --> 12:49.800
This is another one that would be looking at right here.
12:51.400 --> 12:55.880
Number one, number two now when I instantiate you will see that
12:55.880 --> 13:00.080
the connections and the ports are how they map it out. You
13:00.080 --> 13:04.880
will see that. As I will explain to you this container, let us
13:04.880 --> 13:09.960
understand this one first. It is exposing itself on port number
13:09.960 --> 13:10.640
8000.
13:12.040 --> 13:14.200
And it wants to.
13:15.080 --> 13:16.360
Pretend to.
13:17.480 --> 13:22.640
Be this DNS name it wants to hold. It wants to be called by
13:22.640 --> 13:27.560
that name. You call me you know Prashant or call me Nilesh.
13:27.560 --> 13:32.080
Whatever that is right, so you assign yourself a name. So this
13:32.080 --> 13:35.480
container wants that people should call me by that name.
13:36.400 --> 13:40.840
My name is who.bar.com. That's what it's announcing that I
13:40.840 --> 13:42.920
want to be called by that name.
13:43.600 --> 13:47.640
That is called a virtual host announcement. This announcement
13:47.640 --> 13:49.560
is listened to by this container.
13:50.600 --> 13:52.280
Through the Docker socket.
13:53.920 --> 13:57.880
And through that it will know where is food.bar.com. That's
13:57.880 --> 14:01.680
the name this container wants to use. So through that
14:01.680 --> 14:05.400
announcement this will know OK food.bar.com means this dude. I
14:05.400 --> 14:09.040
mean this container. That's how the announcement happens.
14:10.000 --> 14:13.440
And now when you run this container, this runs NGINX
14:13.440 --> 14:17.240
proxy. Which is a container image created by Jason that I
14:17.240 --> 14:21.080
mentioned briefly last time, but it's the same image that we are
14:21.080 --> 14:24.800
using today and it maps port number 82 port number 80 like
14:24.800 --> 14:26.600
this port to that port on the machine.
14:26.600 --> 14:30.560
This is the machine port. This is the container port.
14:31.040 --> 14:35.200
So we want to make sure that this runs properly. What I know
14:35.200 --> 14:39.480
in my case in your case on a fresh new machine you will not
14:39.480 --> 14:43.600
have any problems. In my case I have a ton of services running
14:43.600 --> 14:47.080
already on this machine right here. Lots of them and port
14:47.080 --> 14:48.640
number 80 is occupied.
14:49.360 --> 14:50.920
So what does that mean?
14:51.920 --> 14:56.200
This port number 80 I cannot use. If I run it like that it
14:56.200 --> 14:59.600
will cause a conflict, so I'm changing it, changing it to
14:59.600 --> 15:03.680
something else like I like to use this port. They just made up
15:03.680 --> 15:07.240
port. You can select any port between say something like you
15:07.240 --> 15:11.960
know number 3000. All the way to 65535 you can pick any random
15:11.960 --> 15:15.480
port as long as it is not occupied already, you will
15:15.480 --> 15:19.600
succeed. If it is occupied, it will cause a conflict and it
15:19.600 --> 15:21.080
will fail, which is fine.
15:22.280 --> 15:26.000
So I'm going to choose this number 8760 as my port on the
15:26.000 --> 15:29.720
machine side, which means I need to edit that file little bit
15:29.720 --> 15:30.200
like that.
15:32.520 --> 15:36.640
And I hope you can see the the font is not too small. I guess
15:36.640 --> 15:41.000
you should be able to see it 8760 and with that change in my
15:41.000 --> 15:43.960
implementation in my composition or Docker compose file, I want
15:43.960 --> 15:46.720
to run these two containers running. These two containers
15:46.720 --> 15:50.280
are very simple, like literally one command does it.
15:51.120 --> 15:54.840
And so I will run that one command is defined in this file.
15:54.840 --> 15:58.680
It is this command. Execute this one command that takes up the
15:58.680 --> 16:02.280
YAML file and runs it. So let's go take that YAML file.
16:03.120 --> 16:07.320
And go to Docker files and go to the step by step folder and
16:07.320 --> 16:09.560
then look at that Docker compose file right there.
16:11.160 --> 16:15.680
This file. Is what I want to invoke through Docker compose,
16:15.680 --> 16:18.280
so I will run line number 5.
16:19.600 --> 16:23.600
Literally, that's the line I'm going to execute Docker compose
16:23.600 --> 16:28.680
1 dash F. For the reference to the file I want to use and then
16:28.680 --> 16:29.440
up. And as D.
16:30.800 --> 16:31.880
Look at it again.
16:33.000 --> 16:36.280
Let's see Docker PS dash A. I have lots of containers already
16:36.280 --> 16:40.360
running, so I want to make sure that I am clean in terms of what
16:40.360 --> 16:43.320
containers I'm running and how are they running and then
16:43.320 --> 16:46.040
nothing else is running from a previous attempt at these
16:46.040 --> 16:49.200
exercises. I think I see that there are certain things running
16:49.200 --> 16:52.680
here that I don't want to be running like engine X proxy is
16:52.680 --> 16:56.520
running and all that. So I need to shut those guys down. I will
16:56.520 --> 16:59.840
do that like right now, so I need to kill these containers.
17:00.760 --> 17:04.920
Uh? Which one is 6 hours ago that these guys that the top
17:04.920 --> 17:08.920
three containers here I want to kill them the 12 and three they
17:08.920 --> 17:14.480
are from a. A run that I did 6 hours ago. I need to kill them.
17:14.480 --> 17:17.440
I will kill these three containers by typing something
17:17.440 --> 17:20.800
like Docker RM dash F and then container ID.
17:20.800 --> 17:24.960
Another container ID and the third container ID and I kill
17:24.960 --> 17:29.560
all three of them. And I did not type the command properly. It
17:29.560 --> 17:34.120
should be just RM dash F, not RF. That should kill all the three
17:34.120 --> 17:38.120
containers that I wanted to die. Now I'll see my doctor containers
17:38.120 --> 17:41.240
running right now and I don't see anything that is.
17:41.840 --> 17:45.640
Not expected, so this is clean start. I just ignore all these
17:45.640 --> 17:49.240
guys. They're not supposed to be a part of our exercise today.
17:49.240 --> 17:54.320
So what I want to do now is to run that command, which is line
17:54.320 --> 17:57.640
number 5. So I will take that command.
17:59.000 --> 18:02.200
Here and execute it. Like that.
18:02.880 --> 18:06.680
So it should start up three containers basically, so let's
18:06.680 --> 18:09.600
go see that. What did it do?
18:11.480 --> 18:14.840
It started one contain or two containers, not three. So I'll
18:14.840 --> 18:18.840
describe what the third one is. So this is not a container, but
18:18.840 --> 18:20.520
it creates a network.
18:21.720 --> 18:25.200
It started an engine X proxy reverse proxy container and it
18:25.200 --> 18:28.880
started a who am I container for the two containers started and
18:28.880 --> 18:32.160
a network created for these guys to communicate to each other.
18:32.160 --> 18:35.040
That's the idea behind this network created and two
18:35.040 --> 18:38.520
containers created. So now what we have is exactly what we
18:38.520 --> 18:40.320
expected in this picture.
18:41.240 --> 18:44.680
Network that connects these guys and this container number one or
18:44.680 --> 18:47.880
number two and this container number two or number one. What
18:47.880 --> 18:51.000
about numbering is important? Not not relevant here in this
18:51.000 --> 18:54.560
context. So let me clean out my ink a little bit.
18:55.320 --> 18:59.320
And change to a white sheet of paper or yellow sheet of paper.
18:59.320 --> 19:03.040
There we go new sheet and now let us go evaluate what we have.
19:04.720 --> 19:07.720
So I want to test these containers, so let's go see
19:07.720 --> 19:08.320
what we have.
19:12.320 --> 19:14.720
Compose PS dash a.
19:14.720 --> 19:18.320
Oh, sorry, where to pass a file reference to the file we're
19:18.320 --> 19:22.000
using, which is dash F1 dot something no dash F1 dot.
19:23.480 --> 19:26.760
Tab please no file names.
19:27.480 --> 19:29.320
This the file I want to pass.
19:30.320 --> 19:35.680
So Docker compose dash F that file name and then show me the
19:35.680 --> 19:40.000
PS process is running under this Docker compose file. It will
19:40.000 --> 19:43.680
show you the two containers running. Here is the container
19:43.680 --> 19:47.000
name. For the first one.
19:48.000 --> 19:51.400
And the container name for the second one. So we have these two
19:51.400 --> 19:54.440
containers already running and now we want to examine what are
19:54.440 --> 19:58.040
they doing for us. So in our picture that I had drawn before,
19:58.040 --> 20:01.320
I'll draw that picture one more time, which is this container
20:01.320 --> 20:02.920
here called who am I?
20:02.920 --> 20:04.360
And another container here.
20:06.760 --> 20:10.440
Called engine X proxy. It is talking on running on port
20:10.440 --> 20:14.280
number 80 locally, but port number 8760 on the IMAX side and
20:14.280 --> 20:17.800
that's the connection that we have. Plus, this proxy is also
20:17.800 --> 20:21.680
speaking over the network that it created on this port to that
20:21.680 --> 20:26.880
who am I container. So what I can do is sitting on the Mac.
20:28.320 --> 20:32.880
Read what this guy is telling me and I'll have to ask it for the
20:32.880 --> 20:35.520
name of this person is food.bar.com.
20:35.520 --> 20:38.120
And so that is exactly what I will do now.
20:39.480 --> 20:43.800
And how do I test it? What I want to be able to do is curl
20:43.800 --> 20:47.840
it to this curl thing we tried a last time and I'll explain this
20:47.840 --> 20:51.320
a little bit clearly so that you will understand the complexity
20:51.320 --> 20:55.120
of curl. Once you get this idea of how to use curl to tweak
20:55.120 --> 20:57.760
around and inspect various running containers in a complex
20:57.760 --> 21:01.600
setup, you will have a whole lot easier time dealing with actual
21:01.600 --> 21:05.040
containers in real life. So as you will see in the next
21:05.040 --> 21:08.880
command, as you will see in this command on line number 9, let's
21:08.880 --> 21:13.200
go dissect that a little bit. What am I doing? I'm asking the
21:13.200 --> 21:17.280
curl command. For the response coming from a machine running or
21:17.280 --> 21:20.120
container running on localhost at port number.
21:22.400 --> 21:26.800
This is not correct because I changed it 8760. That's how it
21:26.800 --> 21:31.280
should be. So tell me whatever is coming back at this address.
21:31.280 --> 21:33.520
And I want to actually talk to.
21:34.560 --> 21:39.120
This container on the back side of your engine X proxy. So when
21:39.120 --> 21:41.560
I run this curl command on the iMac.
21:41.560 --> 21:43.720
It hits the proxy.
21:44.680 --> 21:45.920
At localhost.
21:46.720 --> 21:52.520
8760 which then hits the reverse proxy at port number 80. The
21:52.520 --> 21:57.840
container inside which then hits port number 8000 on the 2MI
21:57.840 --> 21:59.400
machine or container.
21:59.400 --> 22:01.720
And then gets me the response back.
22:04.840 --> 22:09.560
That's how you will see the flow of this. So let me you know
22:09.560 --> 22:13.240
explain this one more time clearly so that you will get it.
22:13.240 --> 22:16.440
The way I will. The way I will modify this command is.
22:17.240 --> 22:22.760
76. This command specifically this portion of localhost 8760
22:22.760 --> 22:29.480
refers to the iMac. Which means. If I.
22:31.240 --> 22:35.880
If I run this command like curl and then type the H which is
22:35.880 --> 22:40.680
past this header. I want to talk to this header which has a
22:40.680 --> 22:45.400
host called foo.bar.com. That is the header I want to pass and
22:45.400 --> 22:50.520
talk to the machine locally on the iMac. I am on the iMac so
22:50.520 --> 22:51.080
localhost.
22:51.080 --> 22:56.160
On the iMac, port number 8760. Show me what it gives me and
22:56.160 --> 23:00.640
what will happen is you will see that the container who am I
23:00.640 --> 23:04.120
will respond back. And it says I am the container ID.
23:05.480 --> 23:07.720
So if you now look at the containers running.
23:08.520 --> 23:12.240
The container ID for the who am I container this container ID
23:12.240 --> 23:16.240
is responding back with the ID of the container which is 6
23:16.240 --> 23:19.720
sorry 6CAA55 whatever that number is. So that is the
23:19.720 --> 23:23.000
container that is responding back. How is it going through
23:23.000 --> 23:27.400
all the way to the back end of that container is through these
23:27.400 --> 23:31.000
references. This reference is the machine called iMac because
23:31.000 --> 23:32.920
that's where I'm running locally.
23:33.600 --> 23:36.000
This reference is to the port that I am using.
23:37.240 --> 23:42.560
Here. On the machine which is mapping to port number 80 on the
23:42.560 --> 23:43.880
proxy container.
23:43.880 --> 23:48.160
And this proxy is then looking for this host name.
23:49.560 --> 23:55.320
Which who am I has advertised that I am foo.bar.com and
23:55.320 --> 23:56.120
therefore.
23:57.560 --> 24:02.360
This who am I receives that request for curd and it response.
24:03.600 --> 24:07.560
Is given out like that, so that's the response you will see
24:07.560 --> 24:10.000
that you saw. We can you know.
24:10.000 --> 24:14.720
Make a note of what that ID number is like 6CAA that number
24:14.720 --> 24:18.240
so keep track of that and I will erase my ink.
24:19.800 --> 24:24.320
And then I want to kill the who am I container.
24:25.120 --> 24:28.800
Like that container ID I want to die. So how do I kill a
24:28.800 --> 24:32.000
container specific container Docker RM dash F kill it? I
24:32.000 --> 24:32.600
killed it.
24:34.080 --> 24:38.280
So now I'll I'll Docker compose up the whole thing.
24:38.280 --> 24:42.960
One more time. What will happen as a consequence is that the
24:42.960 --> 24:44.960
who am I container?
24:46.120 --> 24:49.880
By the way, right now only one container is running. Who am I
24:49.880 --> 24:53.280
is dead because I killed it. You can see that only engine
24:53.280 --> 24:57.040
proxy is running. Now if I bring the whole thing back again,
24:57.040 --> 25:00.000
like I did the first time, this brings up that who am I again?
25:01.840 --> 25:03.000
See this who am I?
25:03.920 --> 25:04.800
Got started.
25:04.800 --> 25:07.400
And proxy was running already.
25:09.280 --> 25:13.200
So now what this does is it generates a new ID for that who
25:13.200 --> 25:16.680
am I container and you will see if I curl one more time.
25:16.680 --> 25:21.520
Like that. And say give me the response. You will see that this
25:21.520 --> 25:25.560
time the container ID is different. Earlier it was this.
25:27.040 --> 25:28.200
And now it is this.
25:30.320 --> 25:31.600
This is the one I killed.
25:31.600 --> 25:33.840
And I started a fresh compose.
25:34.840 --> 25:37.200
It started this new who am I?
25:37.920 --> 25:40.360
Which is what is responding back with its ID.
25:41.080 --> 25:45.000
So we are able to actually reach out to a container behind a
25:45.000 --> 25:48.200
proxy and connect through it through a reverse proxy and get
25:48.200 --> 25:51.680
the response back. That's how exactly you know a website opens
25:51.680 --> 25:55.480
basically by the way, so website will pass something like
25:55.480 --> 25:56.880
food on bar.com.
25:57.680 --> 26:01.400
On the browser on the on the editor, you know, you can
26:01.400 --> 26:04.840
go to address bar and you would type something. It will send a
26:04.840 --> 26:07.640
request back with that header and send out to the destination
26:07.640 --> 26:10.440
address wherever that machine lies. It might have a proxy in
26:10.440 --> 26:13.640
front. It may not have a proxy, but that's where the response
26:13.640 --> 26:15.960
comes back to you in the browser window.
26:15.960 --> 26:20.600
So now what I want to do is to tell you that this food on
26:20.600 --> 26:22.120
bar.com is a made up name.
26:23.040 --> 26:26.280
You know there is no such thing called food on bar.com. At
26:26.280 --> 26:30.840
least I don't know off and so what I want to do is go on my
26:30.840 --> 26:33.120
Macintosh. This is your.
26:33.840 --> 26:38.040
This this container that this command line you're looking at
26:38.040 --> 26:43.320
is my I Mac, so it's the Linux box so you can see that you
26:43.320 --> 26:48.160
name is a Linux machine right there, Linux. So what I want to
26:48.160 --> 26:52.600
do is get back to my local I Mac, sorry local whatever this
26:52.600 --> 26:55.120
Mac. So this is not a Linux machine.
26:55.120 --> 27:00.360
It's Darwin on this machine. I want to make a modification.
27:01.400 --> 27:04.840
To the host file. And what I want to do is.
27:05.800 --> 27:09.360
Show you the modification I already made. What did I make?
27:09.360 --> 27:10.000
Let's go see.
27:11.840 --> 27:14.440
You see that I already made this change 6 hours ago.
27:15.800 --> 27:17.120
And I added this line.
27:17.840 --> 27:22.560
As a hack, this is basically a DNS hack. I modified.
27:22.560 --> 27:26.840
And my host file and said, you know, 192 168 1.10.
27:28.360 --> 27:32.800
Is where food on bar.com lives. That's a local overrided. This
27:32.800 --> 27:36.600
hack will run only on the on the machine that I'm on on this Mac.
27:37.600 --> 27:38.720
And nowhere else.
27:39.520 --> 27:42.680
And so if I now on the Mac open food on bar.com.
27:43.600 --> 27:49.160
The traffic will go to 192 168 1.10, which is the I Mac.
27:49.160 --> 27:54.000
But. I wanted the traffic to go on port number 8760.
27:55.040 --> 28:00.000
On the food on bar.com name, so I will open up a browser like
28:00.000 --> 28:01.320
this. HTTP.
28:02.120 --> 28:03.400
Colon slash slash.
28:04.480 --> 28:06.720
And then I'll say food on bar.com.
28:09.840 --> 28:14.880
And then I'll put a colon and put 8760. What will happen as a
28:14.880 --> 28:18.960
consequence in this fictitious name that I have assigned in my
28:18.960 --> 28:23.120
htc host file on the Mac will recognize that this address
28:23.120 --> 28:24.680
actually is mapping to.
28:26.080 --> 28:26.920
That address.
28:28.480 --> 28:30.320
192 168 1.10.
28:31.240 --> 28:34.120
So now it will then transmit that traffic to the Mac.
28:35.040 --> 28:38.680
To the I Mac where it will run into this machine, the I Mac
28:38.680 --> 28:41.680
machine at that port, because that's what we're passing as a
28:41.680 --> 28:45.160
reference. And then it goes through the same process like we
28:45.160 --> 28:48.680
did before. This time we have one step away from the actual
28:48.680 --> 28:51.920
address that that we had in our hand. What does it mean?
28:52.640 --> 28:56.480
Let me raise my ink, go back to my illustrations here and what
28:56.480 --> 29:00.440
I'm going to tell you is that this machine that I am dealing
29:00.440 --> 29:02.240
with right now is an M1 Mac.
29:02.240 --> 29:05.280
And I have modified my Etsy host file.
29:08.840 --> 29:12.320
And in that host file modification, I told my machine
29:12.320 --> 29:19.800
that foo.bar.com actually is 192.168.1.10.
29:19.800 --> 29:23.400
That's where you should go, so it goes there. Now let us see
29:23.400 --> 29:27.400
if we can open a browser and see we can see what this guy is
29:27.400 --> 29:31.080
telling us. Does it reach there and does it even give us the
29:31.080 --> 29:34.880
answer we expect to get, which is I am some ID. That's what I'm
29:34.880 --> 29:38.320
expecting to get from this who am I container. So I'm going to
29:38.320 --> 29:39.280
open up my browser.
29:39.280 --> 29:46.680
And then. Local host, not local host, foo.bar.com.
29:46.680 --> 29:53.320
http colon slash slash foo.bar.com colon 8760 and let's
29:53.320 --> 29:54.520
see what pops up.
29:56.480 --> 29:57.680
And what do I see?
29:58.600 --> 30:02.800
I am some number. This is exactly what we expected.
30:03.800 --> 30:08.040
But we who is sending us this response? The response is
30:08.040 --> 30:12.200
coming back from. From this guy.
30:14.760 --> 30:17.560
And we are going from the M1 Mac.
30:19.120 --> 30:23.480
To this machine which is running on the which are running
30:23.480 --> 30:27.440
containers on that port which maps to the proxy container on
30:27.440 --> 30:31.680
this port and this proxy talks to the who am I container on
30:31.680 --> 30:35.440
that port and send the response back through the proxy proxy to
30:35.440 --> 30:39.560
that Mac to this M1 Mac. And then you see it in the browser.
30:41.360 --> 30:46.600
So that was the overall detail of flow of graphic from browser.
30:47.480 --> 30:51.560
All the way to the back end and back to the browser. So that's
30:51.560 --> 30:54.880
the communication pad that users saw in a very simple trivial
30:54.880 --> 30:56.600
example with a Docker compose file.
30:57.560 --> 31:01.560
That we used which we use this one. This file right? That's
31:01.560 --> 31:05.880
what we used. So in your case you will have this 8760. You
31:05.880 --> 31:08.960
will not be using it. We will probably not be running random
31:08.960 --> 31:12.440
services on your on your computer or you you can like a
31:12.440 --> 31:15.280
renter cloud cloud machine somewhere in some cloud and you
31:15.280 --> 31:17.880
know use the same set exercise exactly like I'm showing you.
31:17.920 --> 31:20.440
It will work just the same way and you will not even have the
31:20.440 --> 31:24.080
port conflict like I run into. And so you have to take care of
31:24.080 --> 31:27.000
that and not busy. You don't have to do anything. It just
31:27.000 --> 31:28.840
follow the instructions and you should succeed.
31:28.840 --> 31:33.520
Having said there was just one simple example of who am I? I'll
31:33.520 --> 31:37.440
now add a little bit of complexity to this and make it
31:37.440 --> 31:38.560
slightly more complex.
31:40.920 --> 31:41.880
And that example.
31:42.800 --> 31:43.400
Is here.
31:45.280 --> 31:47.440
It's the number two Docker compose file.
31:48.400 --> 31:50.760
It runs WordPress and it has.
31:52.280 --> 31:53.640
Let's see how many things.
31:55.920 --> 31:56.280
3.
31:56.280 --> 32:00.960
And a network. So let's go describe this overall overall.
32:02.120 --> 32:05.880
By the way, before I jump, let me clean up what we just created
32:05.880 --> 32:10.280
here. So what does that mean? I need to go back and quit from
32:10.280 --> 32:11.680
the from the Macintosh.
32:13.200 --> 32:15.320
So I quit.
32:16.560 --> 32:20.720
Then I go back to the I Mac, which is a Docker machine, and
32:20.720 --> 32:22.160
that's where I want to.
32:22.160 --> 32:23.040
Shut down.
32:23.040 --> 32:26.960
This Docker compose, so I'll say Docker compose down, so it
32:26.960 --> 32:30.880
shuts them down and removes the network and removes the who am
32:30.880 --> 32:34.320
I? Container removes the proxy and all that is cleaned, cleaned
32:34.320 --> 32:38.280
out completely. Having having seen that I will now jump over
32:38.280 --> 32:42.360
to describing to you. By the way, this guy is dead. If you
32:42.360 --> 32:46.080
open the browser now, try again later. Nothing works because the
32:46.080 --> 32:49.360
machine is not running anymore. Like containers are not running
32:49.360 --> 32:50.920
anymore, so it is dead.
32:50.920 --> 32:55.080
Having seen that, let us now describe the next design as to
32:55.080 --> 32:59.920
how we can implement this design and how is it written down in a
32:59.920 --> 33:03.600
Docker compose file. So that's what that's what we will will
33:03.600 --> 33:08.120
discuss a little bit. So in this let me just read the compose
33:08.120 --> 33:12.080
files. I can draw the picture properly, so we have an engine
33:12.080 --> 33:15.200
X proxy. We have a database and WordPress and volume and.
33:15.920 --> 33:18.120
A network. So five things.
33:18.120 --> 33:20.560
So I'll describe those things to you.
33:22.960 --> 33:25.680
OK, I'll draw them on the left half.
33:26.960 --> 33:27.760
And.
33:31.120 --> 33:34.720
You can reference them in the right half on the code. I think
33:34.720 --> 33:37.840
it is too small, probably, so I'll make it slightly bigger
33:37.840 --> 33:41.600
almost slightly. Yeah, there we go. So we have the services
33:41.600 --> 33:45.320
available now. OK, good, let's go begin so.
33:45.320 --> 33:50.400
Let me draw it out so we have that I'm act that I'm dealing
33:50.400 --> 33:55.600
with. In that I'm act I need to have a network so some some
33:55.600 --> 33:56.720
network here.
33:58.120 --> 34:01.160
Which automatically gets created through line number 41 here
34:01.160 --> 34:05.560
right? On the on the right side, 41 that creates a network
34:05.560 --> 34:08.240
called CG. That's the name that I chose.
34:09.920 --> 34:14.400
Then we have a volume in line number 38. Volume basically
34:14.400 --> 34:17.280
means storage space storage.
34:19.080 --> 34:20.280
Also known as volume.
34:22.400 --> 34:27.240
And this volume is assigned a name called DB underscore data.
34:29.560 --> 34:33.680
So asking Docker to give us a volume or storage place for
34:33.680 --> 34:37.000
database to consume. That's the idea behind this storage
34:37.000 --> 34:37.760
allocation.
34:39.440 --> 34:43.240
So we are looking for getting some storage, getting a network
34:43.240 --> 34:47.080
source and then we will instantiate a WordPress container.
34:48.560 --> 34:50.920
Will also instantiate a database container.
34:52.560 --> 34:54.720
And will also instantiate a reverse proxy.
34:56.520 --> 35:00.560
That reverse proxy again I need to run it on a different port
35:00.560 --> 35:04.120
because my ports are occupied. And that's the mapping we have
35:04.120 --> 35:05.040
to establish.
35:08.680 --> 35:11.560
That is this container reverse proxy container same like
35:11.560 --> 35:16.240
this. Same exact thing, except I need to change this port 8760.
35:16.240 --> 35:18.320
So I did that.
35:19.840 --> 35:22.640
And that's the reason I need to do because my machine is.
35:23.480 --> 35:26.920
Running a bunch of other things, so it is already taken over the
35:26.920 --> 35:29.280
port number 80, so it's not available anymore right now.
35:30.040 --> 35:33.520
Now let us see. Look at this container WordPress container
35:33.520 --> 35:37.280
which is exposing itself on the container side at port number
35:37.280 --> 35:37.760
80.
35:37.760 --> 35:42.440
And it wants to be called the same name foo.bar.com.
35:45.600 --> 35:48.640
So my name is foo.bar.com. That's what it says.
35:49.680 --> 35:50.200
Fine.
35:51.280 --> 35:51.800
Next.
35:53.040 --> 35:55.800
What do we have is the third container is this.
35:56.840 --> 35:58.240
Which is a database container.
35:59.040 --> 36:03.560
This time as you will see that I am using MySQL as opposed to
36:03.560 --> 36:07.680
MariaDB, so it's just giving you a flavor.
36:09.040 --> 36:11.960
And so that is this container right there.
36:18.160 --> 36:20.200
And this container uses this volume.
36:21.520 --> 36:25.280
The data that it wants to store the data and database data.
36:26.160 --> 36:27.720
Is stored in this volume.
36:27.720 --> 36:33.200
And this is referenced right here.
36:35.960 --> 36:39.880
So that's the database storage location that is assigned to a
36:39.880 --> 36:43.880
location where MySQL expect to store the database data, which
36:43.880 --> 36:47.840
is where libmySQL and that's where this container will store
36:47.840 --> 36:50.600
the data and will be preserved in this storage location
36:50.600 --> 36:54.240
allocated to you by Docker. So Docker gives you storage system.
36:54.240 --> 36:58.120
That's what you can consume it here like that.
36:58.120 --> 37:00.360
So that was database and the storage for that.
37:01.720 --> 37:02.400
Similarly.
37:03.160 --> 37:05.480
This container is used by this container.
37:06.400 --> 37:07.960
WordPress will use database.
37:09.120 --> 37:11.760
See WordPress depends on database.
37:14.600 --> 37:17.680
It depends on that container, so that means the database
37:17.680 --> 37:20.320
container needs to be up and running before WordPress
37:20.320 --> 37:22.200
container is set to be ready.
37:22.200 --> 37:22.920
And.
37:24.200 --> 37:28.840
It has a name that it wants to call itself by that name
37:28.840 --> 37:34.680
foodonbar.com. It is mapping itself to WordPress DB, which is
37:34.680 --> 37:40.120
this container. On port number 3306, which is where MySQL runs.
37:41.840 --> 37:46.280
It has a user called username and a password called password,
37:46.280 --> 37:48.920
which is the same thing I have signed here.
37:48.920 --> 37:50.560
The username is username.
37:51.440 --> 37:55.440
And password is password. Now this is a stupid idea. Don't do
37:55.440 --> 37:59.000
this in production, but I do these things for simplicity for
37:59.000 --> 38:02.520
I don't have to type because I told you probably I'm laziest
38:02.520 --> 38:06.320
you can ever imagine like really the most lazy person on the
38:06.320 --> 38:07.680
planet is probably me.
38:08.600 --> 38:12.360
And so I don't want to even type username and password, so I
38:12.360 --> 38:14.720
just assign them so that it automatically picks up.
38:14.720 --> 38:19.440
As you will see, so that's the WordPress container here.
38:21.920 --> 38:23.560
And I will erase my ink now.
38:24.800 --> 38:27.360
And reference the third container, which is this one.
38:28.320 --> 38:30.480
And as you can see, the port mapping.
38:31.040 --> 38:35.400
Is already discussed in the previous example, and that's
38:35.400 --> 38:39.160
pretty much it. It also looks at Docker socket so it can read
38:39.160 --> 38:41.760
the names that you're requesting. For example.
38:41.760 --> 38:44.040
This name here.
38:45.320 --> 38:47.560
Virtual host is picked up.
38:48.720 --> 38:54.640
By this volume mapping so that engineers reverse proxy that we
38:54.640 --> 38:59.480
have is aware of the name that this container is expecting to
38:59.480 --> 39:01.840
use. Food on bar.com.
39:02.720 --> 39:06.800
And so anytime somebody from the outside says give me what is
39:06.800 --> 39:10.200
showing on food on bar.com, the request hit.
39:10.200 --> 39:14.880
The request hit the machine on that port 8760, which then
39:14.880 --> 39:18.600
transfers over to the reverse proxy and reverse proxy knows
39:18.600 --> 39:20.960
where is food on bar.com because of that label.
39:21.480 --> 39:23.640
32 line 32.
39:24.840 --> 39:25.520
This level.
39:26.960 --> 39:31.040
So then sends the traffic over to WordPress. You can have you
39:31.040 --> 39:34.160
know multiple different things running all behind the same
39:34.160 --> 39:37.600
reverse proxy with different names and you can run multiple
39:37.600 --> 39:40.200
services all behind one reverse proxy.
39:41.240 --> 39:44.040
That's the underlying idea of using a reverse proxy. We're
39:44.040 --> 39:46.920
just using one example right now. We can actually run
39:46.920 --> 39:49.720
multiple things behind one reverse proxy on one machine,
39:49.720 --> 39:52.680
multiple websites, multiple services, whatever else you want.
39:52.680 --> 39:57.320
It's not just websites anything. As long as they have a unique
39:57.320 --> 40:01.000
name assigned. Reverse proxy will understand and associate
40:01.000 --> 40:04.200
them appropriately with this guy, that guy, this guy,
40:04.200 --> 40:07.800
whatever you have. We don't have these guys yet. Subsequent
40:07.800 --> 40:12.080
example will have it. The number three. This example has it.
40:13.080 --> 40:15.520
So I'm going to erase my ink again.
40:16.520 --> 40:20.200
And this time, now that we have understood what our design is.
40:20.880 --> 40:23.920
I will run this compose stack, bring it up.
40:25.800 --> 40:30.040
What does it mean? It means I will run Docker compose with
40:30.040 --> 40:35.000
this file in hand, which is described in our step number two.
40:36.840 --> 40:40.760
Not described here apparently, so it's not written down, is it?
40:41.320 --> 40:41.760
Let's see.
40:44.280 --> 40:47.600
It's not written down, it seems so I'll write it. Hold on, let
40:47.600 --> 40:49.400
me check. Did I write it?
40:52.280 --> 40:56.040
No, I did not write it, so let me write it down.
40:56.040 --> 41:00.880
The way you would do that is to invoke pretty much like what we
41:00.880 --> 41:03.240
did in in step number one.
41:03.960 --> 41:07.000
Is this command right there? Same thing.
41:07.800 --> 41:11.120
Except this slightly modified to refer.
41:14.800 --> 41:16.960
The other file. This file.
41:21.280 --> 41:25.440
Instead of the file that I am using in the previous example,
41:25.440 --> 41:29.320
I will run Docker compose jwilder.yml. I will not use this
41:29.320 --> 41:31.480
name, but instead use the other name.
41:33.520 --> 41:37.360
That's it. That's the only change you refer to the other
41:37.360 --> 41:39.680
file and it brings up that stack.
41:39.680 --> 41:42.800
So that's the change I just made in my instructions.
41:43.480 --> 41:47.240
And I will now execute that on my command line.
41:48.160 --> 41:49.160
In the iMac.
41:49.160 --> 41:54.000
So here. Like that, Docker compose, bring up the stack
41:54.000 --> 41:59.200
containing WordPress, meaning this file. Bring it up so I did
41:59.200 --> 42:00.400
so it does.
42:02.760 --> 42:04.120
So now we have.
42:05.000 --> 42:06.880
A container running.
42:08.600 --> 42:12.120
Call DB engine, X proxy and app.
42:12.840 --> 42:15.120
So three containers are running right now.
42:15.120 --> 42:18.760
There is some network default, external name is deprecated,
42:18.760 --> 42:20.040
some deprecation warning.
42:20.640 --> 42:25.040
Is assigned apparently, so we will have to deal with the
42:25.040 --> 42:29.160
deprecation later on. I will not talk about deprecations right
42:29.160 --> 42:34.080
now. But it's probably something like this. I think that's what
42:34.080 --> 42:38.600
it basically means, but I think that's what this this line means
42:38.600 --> 42:42.200
external equal true set network name external true. That's what
42:42.200 --> 42:45.720
it means, but I'm not messing around with that thing right
42:45.720 --> 42:47.840
now, so I'm not touching it.
42:49.920 --> 42:54.440
But that said, let us go test. How do you test the same exact
42:54.440 --> 42:58.960
way? Same exact way. In fact, it's a whole lot easier to see
42:58.960 --> 43:03.600
this because we can just open our Firefox browser and go to
43:03.600 --> 43:08.520
http colon slash slash foo dot bar dot com slash 8760 just like
43:08.520 --> 43:16.400
before I will visit this site on my M1 Mac. Remember?
43:17.240 --> 43:21.800
Not this, not this setup, but a separate machine that I have
43:21.800 --> 43:27.000
here or M1 which has the host file modified at C host file is
43:27.000 --> 43:32.000
modified. And I say food dot bar dot com is actually this
43:32.000 --> 43:37.000
machine. So go there. So that's what we expect to see that it
43:37.000 --> 43:40.240
will connect to this reverse proxy through this machine port
43:40.240 --> 43:43.360
to the internal port, which then connects to the WordPress
43:43.360 --> 43:46.160
instance, which then connects to the database, which then
43:46.160 --> 43:48.720
stores the data in the storage, all on this network.
43:49.640 --> 43:50.680
That's what you will see now.
43:51.480 --> 43:52.600
So let us go play with it.
43:55.160 --> 43:58.760
By the way, when you get time, you should do these exercises
43:58.760 --> 44:00.920
yourself and post a screenshot on Twitter.
44:02.920 --> 44:04.360
I'm going to erase this ink.
44:04.360 --> 44:05.480
And then.
44:06.840 --> 44:08.280
Open up that website.
44:09.200 --> 44:11.560
There is another guest coming in. I let him in.
44:14.800 --> 44:16.000
Somebody just showed up.
44:17.160 --> 44:17.880
You're welcome.
44:19.560 --> 44:23.640
So I will now see what that website shows with the browser
44:23.640 --> 44:25.200
shows. So I'm going to open it up.
44:25.200 --> 44:37.120
And. It already shows me something from our previous
44:37.120 --> 44:42.600
attempt. So what I'm going to do now is delete the storage that
44:42.600 --> 44:45.760
storage persisted the whole thing, so that's why you see
44:45.760 --> 44:49.280
the previous attempt that I did. I need to kill the kill the
44:49.280 --> 44:52.840
whole stack and bring it up again. So let me kill it so that
44:52.840 --> 44:56.080
you get a clean experience right now. You're getting a
44:56.080 --> 44:58.920
stale experience from my previous attempt at running this
44:58.920 --> 45:03.160
thing, so I will go back and bring that stack down.
45:04.120 --> 45:07.480
And also delete the storage location. See, I mentioned you
45:07.480 --> 45:10.720
about this storage here, right? This storage here. This one.
45:11.480 --> 45:15.000
That persisted. It did not die. I didn't kill it. Story doesn't
45:15.000 --> 45:18.840
die unless you go deliberately kill it. So I'm going to kill it
45:18.840 --> 45:22.560
now and then run the whole thing again. So here I go identify
45:22.560 --> 45:28.320
what I was using here and so the storage name was Docker Volumes
45:28.360 --> 45:32.640
LS. Lots of volumes here. I want to identify the right one and
45:32.640 --> 45:34.880
kill that one. The right one is.
45:36.080 --> 45:37.920
DB data. Where is that?
45:44.840 --> 45:49.160
There, that's the name. So step by step DB data is the volume
45:49.160 --> 45:54.960
that I want to kill. So Docker volume RM dash F and this guy
45:54.960 --> 46:00.480
should die. So it died nice. So now we don't have that volume
46:00.480 --> 46:04.240
anymore. You can check it by gripping for it.
46:09.440 --> 46:13.080
And we have nothing nice clean setup. So now we'll bring that
46:13.080 --> 46:15.320
stack back up. Again.
46:15.320 --> 46:17.920
This time, as you will see, it created a volume.
46:18.640 --> 46:21.040
That means we're getting a fresh new experience.
46:21.920 --> 46:23.840
And I will refresh the browser.
46:24.560 --> 46:28.040
Like that. And it will show you fresh new installation of
46:28.040 --> 46:31.600
WordPress. That's exactly what we expect, not stale setup. So I
46:31.600 --> 46:35.720
killed the data data store storage volume and now we have
46:35.760 --> 46:40.000
to continue assign a name. So I'll call it the cloud seminar
46:40.000 --> 46:43.600
by cloud genius and all that name password.
46:43.600 --> 46:45.680
And confirm the use of weak password.
46:46.440 --> 46:49.640
You don't want to do that in real situation. Put my name, my
46:49.640 --> 46:53.240
email address. And then discourage search engines and
46:53.240 --> 46:56.360
then install WordPress and you have it up and running. You can
46:56.360 --> 46:58.200
log in. And here you go.
47:01.840 --> 47:04.240
And this is by the way, the latest updated WordPress. You
47:04.240 --> 47:08.120
don't have to any updates any is already finished fresh and you
47:08.120 --> 47:12.040
can now go create a post. Like this, add a post.
47:12.040 --> 47:17.240
And say next, next, next. OK, come on, go away, title.
47:42.040 --> 48:04.800
So that was my edit in this new blog post. I'm going to publish
48:04.800 --> 48:09.520
it and say I am ready. So OK, go do it and then view the post
48:09.520 --> 48:14.040
and there we have it. That's the new post. Now, as you can
48:14.040 --> 48:17.440
see, you know this will persist by the way. If I shut down or
48:17.440 --> 48:20.680
bring the stack down, my data volume will persist and my
48:20.680 --> 48:24.160
everything else will remain intact. Let's go test it. Let's
48:24.160 --> 48:27.000
go actually kill this thing down and bring it down. So docker
48:27.000 --> 48:27.960
volume bring down.
48:29.120 --> 48:34.280
So now. The containers are stopped. The volume.
48:34.280 --> 48:39.120
It's still there. So if I now bring the stack up.
48:40.720 --> 48:43.120
You will see that everything is just fine.
48:44.360 --> 48:47.400
It is working. If I go back and shut it down.
48:51.720 --> 48:55.640
And try to bring it back, nothing works. I go back and
48:55.640 --> 48:57.240
bring it up again.
49:00.240 --> 49:04.240
Everything works. I go back and I go back and I go back and
49:04.240 --> 49:05.480
I go back, shut it down.
49:07.880 --> 49:12.720
And kill the storage you see. That storage volume that one I
49:12.720 --> 49:17.400
want to delete it. So I'll say docker volume go bye bye.
49:19.560 --> 49:23.560
Where is the docker volume? Go bye bye so it dies and we don't
49:23.560 --> 49:27.040
have the docker volume anymore. So now I'll bring the stack up.
49:28.280 --> 49:29.240
And you will see.
49:29.240 --> 49:33.240
That it works like a fresh setup. Actually, it's trying to
49:33.240 --> 49:35.480
establish a connection. But it will soon.
49:39.640 --> 49:43.160
Connect and then it was waiting for database to start up
49:43.160 --> 49:46.960
before it could not establish connection. So now it did and
49:46.960 --> 49:50.280
then we go continue and the same exact thing again. The.
49:50.760 --> 49:53.280
Let's call it cloud genius site.
49:53.280 --> 49:57.400
And user name again, whatever you want. Basically.
50:00.640 --> 50:02.560
This is just junk nothing.
50:04.640 --> 50:08.720
And you have the machine up and running with the sites and
50:08.720 --> 50:11.960
services you wanted and you logged in and then your
50:11.960 --> 50:14.120
dashboard and updates and all are good.
50:15.160 --> 50:16.040
That's the idea.
50:16.960 --> 50:18.720
So we killed our data storage.
50:18.720 --> 50:22.640
And everything was lost. Bring the stack up and you saw the
50:22.640 --> 50:26.120
experimentation. They take away. Let's go summarize it. What did
50:26.120 --> 50:29.680
we do and why did we do it? So here we go.
50:31.760 --> 50:33.080
Summarizing this idea.
50:36.960 --> 50:41.480
The what I'm going to do is get my pencil back. There we go and
50:41.480 --> 50:45.640
I will summarize. The idea is that you can run multiple
50:45.640 --> 50:48.960
services. As many as you want.
51:01.400 --> 51:03.960
And run them all behind a reverse proxy.
51:07.080 --> 51:08.920
And the users can access.
51:09.720 --> 51:12.600
The same IP address with a different IP address.
51:12.600 --> 51:17.280
Access. But the same IP address with a different name like
51:17.280 --> 51:20.600
food.bar.com. So this was food.bar.com.
51:23.960 --> 51:28.600
This was running WordPress and it has a database and it stored
51:28.600 --> 51:32.920
the data in a database system volume provided by Docker called
51:32.920 --> 51:37.240
DB. Underscore data that was the name. I think I chose that's
51:37.240 --> 51:41.160
where the storage was given and all these containers are running
51:41.160 --> 51:44.400
at work. That also gets created through Docker compose.
51:45.000 --> 51:48.200
And you can have this one as say Nilesh.
51:49.280 --> 51:51.200
This one can be Sanjay.
51:53.000 --> 51:54.560
Or basically whatever you want.
51:56.000 --> 51:57.680
And this reverse proxy will.
51:58.560 --> 52:02.080
Reach out to the appropriate container by the name you're
52:02.080 --> 52:05.760
using. And those services will automatically get connected to
52:05.760 --> 52:09.520
whatever on the underlying levels of data set databases or
52:09.520 --> 52:13.680
this or you know Redis proxy or God knows whatever you have
52:13.680 --> 52:17.480
under the hood. You can create whatever you want and run the
52:17.480 --> 52:18.880
entire stack.
52:18.880 --> 52:22.840
In one command, that's the third exercise. By the way, the third
52:22.840 --> 52:26.840
step you will actually see it. Or maybe I'll let let let let
52:26.840 --> 52:29.960
go summarize this first before talk about third. The bottom
52:29.960 --> 52:33.320
line is you can as long as you're preserving the data.
52:33.320 --> 52:38.400
So keep this safe. You can destroy the whole thing.
52:40.840 --> 52:44.720
And bring it up back in one command and everything is back
52:44.720 --> 52:48.360
to normal business. No problem at all, like as if nothing
52:48.360 --> 52:51.200
happened. So that's the whole idea is providing you
52:51.200 --> 52:54.480
resiliency. As long as you're able to protect your data, you
52:54.480 --> 52:57.760
can kill your containers left and right. All of them together
52:57.760 --> 53:01.680
at the same time and bring it back up in a matter of fraction
53:01.680 --> 53:06.120
of seconds. And you're back in business. That's the takeaway is
53:06.120 --> 53:07.720
about persisting data.
53:12.760 --> 53:16.720
Keep it intact, then you keep it separate and then your entire
53:16.720 --> 53:19.880
stack design can be implemented simply just like I showed you.
53:23.880 --> 53:27.200
That's the idea behind using Docker and Docker compose. So
53:27.200 --> 53:30.000
let's go to that Docker compose illustration.
53:30.000 --> 53:31.840
That's the file that we were using.
53:34.560 --> 53:38.400
And simply it had, you know, a bunch of containers like you saw
53:38.400 --> 53:41.840
proxy container database container WordPress container
53:41.840 --> 53:46.400
and what else we had. We had a volume and we had a network.
53:47.120 --> 53:49.360
So storage location network connection.
53:50.840 --> 53:54.120
Three containers up and running whatever you want as long as
53:54.120 --> 53:55.560
you're protecting your volumes.
53:55.560 --> 54:00.240
Volumes. Separately, in an ideal situation, you want to keep
54:00.240 --> 54:04.320
this on a machine away from your main machine like completely
54:04.320 --> 54:09.000
outside. For example, let me show you where exactly you could
54:09.000 --> 54:13.200
put it. You would put it something like let's go take
54:13.200 --> 54:18.320
some example of a cloud. So here we go. Which cloud do we have
54:18.320 --> 54:19.400
here right now logged in?
54:20.200 --> 54:23.800
console.awl.amazon. I think I have Amazon account connected
54:23.800 --> 54:29.080
logged in right now. So what I would like to show you is that
54:29.080 --> 54:32.200
you ask the cloud company like this, for example.
54:33.040 --> 54:33.920
To give you.
54:34.560 --> 54:37.640
An SSD at disk like actual disk.
54:38.960 --> 54:43.880
Or virtual disk who cares, but a disk that you can get from.
54:46.360 --> 54:50.640
And these guys are obnoxiously big and so you get lost. That's
54:50.640 --> 54:54.920
where you go easy to and then you find elastic block storage
54:54.920 --> 54:56.840
somewhere here. Where's that?
54:58.080 --> 54:59.160
Elastic block storage.
55:02.240 --> 55:07.280
Hold on, let me find it for you. The best way to find it is
55:07.280 --> 55:12.680
block storage. And that's how you find it. So block storage is
55:12.680 --> 55:14.600
in here easy to.
55:15.520 --> 55:16.400
Instance.
55:16.400 --> 55:19.080
Volumes, that's the block storage.
55:19.760 --> 55:24.840
So let's go see again in easy to somewhere you have to go look
55:24.840 --> 55:29.520
for a elastic block storage. You create a volume and use a general
55:29.520 --> 55:34.480
purpose SSD and create a size and then you pay for it and then
55:34.480 --> 55:38.760
you use this SSD and connect it to the machine that you will
55:38.760 --> 55:42.360
have so that the disk is separate from the machine. You
55:42.360 --> 55:43.600
can kill the machine.
55:43.600 --> 55:48.080
And then let it die and create a new machine and have it run
55:48.080 --> 55:51.560
Docker and Docker Compose and everything goes brings up as
55:51.560 --> 55:55.720
long as you are. Keeping this volume, basically it's an SSD.
55:56.600 --> 55:59.360
That you know whatever size you want and you will pay for it.
55:59.960 --> 56:03.680
And mount this disk onto a machine you will obtain from
56:03.680 --> 56:07.680
somewhere. And you are in good business, so that's the idea of
56:07.680 --> 56:10.880
separation of storage away from your rest of the actual
56:10.880 --> 56:14.120
functional things. Like you know containers that you run and
56:14.120 --> 56:16.200
some network you have. You can bring this up.
56:16.760 --> 56:20.920
Or kill it all and bring it up again. Just fine. No problems as
56:20.920 --> 56:24.160
long as data is separately stored somewhere else outside of
56:24.160 --> 56:28.320
the machine. That's a machine you will get from from easy to
56:28.320 --> 56:32.000
or some other cloud will have similar setups. All these clouds
56:32.000 --> 56:35.640
are basically the same. You have they have different names that
56:35.640 --> 56:39.000
sound fancy and buzzwords. I call them bullshit bingo.
56:39.000 --> 56:43.680
And yes, people people know that that I don't like buzzwords. I
56:43.680 --> 56:48.240
don't use them. But basically go straight to the bottom line as
56:48.240 --> 56:52.280
to understand what these things are. It's a SSD. This cloud
56:52.280 --> 56:55.840
calls it Wall Elastic Block Storage and Google Cloud calls
56:55.840 --> 57:00.200
it. God knows what, but doesn't even matter. It's an SSD. That's
57:00.200 --> 57:04.760
how you should think. I need a computer, so this cloud calls it
57:04.760 --> 57:06.360
an instance and.
57:06.360 --> 57:10.360
Some of the clouds will call it droplet. Some other some some
57:10.360 --> 57:14.360
other will come with some other fancy name. Who cares? It's a
57:14.360 --> 57:16.360
computer and this is an SSD.
57:17.040 --> 57:21.360
Just keep it simple and don't get what I call you know you
57:21.360 --> 57:24.600
know frustrated by use of buzzwords because in our
57:24.600 --> 57:28.600
industry. These marketing people have great. In fact, the work
57:28.600 --> 57:33.360
the word cloud you know you know the word cloud that itself is a
57:33.360 --> 57:37.160
buzzword. Cloud is nothing but somebody else as computers and
57:37.160 --> 57:41.120
a form of computers. So Bezos Jeff Bezos comes along and gives
57:41.120 --> 57:44.160
you lots of machines and lots of things you know.
57:45.120 --> 57:48.600
That's pretty much what a cloud is. So we'll talk more about
57:48.600 --> 57:51.720
cloud in a separate discussion, but cloud is a marketing
57:51.720 --> 57:55.520
buzzword and the whole thing below that is full of nonsense
57:55.520 --> 57:58.960
buzzwords like absolutely utter useless. Just only thing it does
57:58.960 --> 58:01.000
is confuses everybody.
58:01.000 --> 58:04.600
And makes other people think that you are smart, but you're
58:04.600 --> 58:09.600
not. And if you know the detail, then I can take the you can use
58:09.600 --> 58:13.240
the buzzword. Fine, that's OK, but you need to know that this
58:13.240 --> 58:17.240
is a disk and that's a computer that runs Linux and it runs
58:17.240 --> 58:20.400
containers and I can create whatever I want using a simple
58:20.400 --> 58:21.760
structure like this.
58:22.960 --> 58:26.600
That's what matters. Nothing else does as long as you're able
58:26.600 --> 58:31.200
to get the things to run. Bingo, that's what you want.
58:31.200 --> 58:32.800
So that's the takeaway.
58:33.760 --> 58:37.600
Now the third exercise I can go on and on for like.
58:38.200 --> 58:41.680
Hours and hours I I I don't know when to stop, so let me
58:41.680 --> 58:43.480
just take a look at the timing.
58:43.480 --> 58:47.600
It is one hour, so maybe we can leave something for you to do
58:47.600 --> 58:50.200
it on your own. So here's the step number three.
58:50.200 --> 58:55.480
This three has a Docker Compose YAML file.
58:55.480 --> 59:00.040
With a lot of things, lots of lots of things in here. I'll
59:00.040 --> 59:03.800
just quickly describe it to you and I'll let you run it
59:03.800 --> 59:07.520
yourself. So the description goes like this. See there's a
59:07.520 --> 59:08.880
reverse proxy here.
59:10.280 --> 59:14.720
Reverse proxy. Hold on something went wrong. Why is it drawing
59:14.720 --> 59:19.120
weird things? OK, there we go. So there's a weird. There's a
59:19.120 --> 59:23.400
reverse proxy. There is also a a let's encrypt companion to get
59:23.400 --> 59:24.760
an SSL certificate.
59:27.080 --> 59:31.800
So this needs to run on a on a real cloud setup with a public
59:31.800 --> 59:36.680
IP, not in my in my local IMAT, which doesn't get a public IP.
59:36.680 --> 59:40.640
So 192 address. Which is a local area network address.
59:44.520 --> 59:48.720
And not a public address. This is not going to get me an SSL
59:48.720 --> 59:53.000
certificate. I have the ability to run it in a public IP, but
59:53.000 --> 59:57.120
it will confuse everybody else. I don't want to run it here. This
59:57.120 --> 01:00:00.040
exercise should be run in a actual cloud outside.
01:00:00.040 --> 01:00:04.440
I have a reverse proxy already running in my in my in my setup,
01:00:04.440 --> 01:00:08.600
so I don't want to go there right now. It's too complicated
01:00:08.600 --> 01:00:12.880
for us to even get there unless you understand basics. So you
01:00:12.880 --> 01:00:16.760
need to get this SSL certificate working for which you need to
01:00:16.760 --> 01:00:19.360
run the cloud with a public IP, not the LAN IP.
01:00:20.120 --> 01:00:23.120
And then get it will get you a free certificate.
01:00:24.280 --> 01:00:28.200
From let's encrypt, which is a nonprofit entity.
01:00:28.960 --> 01:00:32.960
That's the thing that will get you a certificate. It will run
01:00:32.960 --> 01:00:36.480
WordPress. It will run another WordPress and probably there are
01:00:36.480 --> 01:00:40.640
more things down and and we'll see all those things. Let me
01:00:40.640 --> 01:00:43.320
erase my ink. It goes away.
01:00:43.320 --> 01:00:46.840
And then I'll scroll so we have one WordPress, another WordPress,
01:00:46.840 --> 01:00:49.680
then database from first WordPress database for second
01:00:49.680 --> 01:00:52.400
WordPress. We're running basically two WordPresses in two
01:00:52.400 --> 01:00:56.600
databases. And each of them is getting a unique name assigned
01:00:56.600 --> 01:01:01.000
here. You see that line number 38 WP dot cloud genius dot app is
01:01:01.000 --> 01:01:05.480
a name that I want to use for this virtual host and then for
01:01:05.480 --> 01:01:07.280
the second one I have this name.
01:01:07.280 --> 01:01:12.800
WP3 dot cloud genius dot app. So you need to have these domain
01:01:12.800 --> 01:01:16.960
names available to you. So if you have a domain name, go
01:01:16.960 --> 01:01:21.080
ahead, do this exercise. If you don't have a domain name, you
01:01:21.080 --> 01:01:23.800
should get one. If you cannot get one for some reason.
01:01:24.600 --> 01:01:27.680
You can still run another exercise which will help you
01:01:27.680 --> 01:01:28.800
understand details and that is.
01:01:30.240 --> 01:01:34.160
That is this exercise called other examples in in here. I
01:01:34.160 --> 01:01:38.320
think I have like way more examples. So there is a Drupal
01:01:38.320 --> 01:01:41.600
container. There's a red mine container. There is a Postgres
01:01:41.600 --> 01:01:44.400
database container. There's a red mine container. Another one.
01:01:44.400 --> 01:01:47.760
There's a database container here and there are more up on
01:01:47.760 --> 01:01:51.280
top. So the whole series of containers. All you can run
01:01:51.280 --> 01:01:52.800
behind one reverse proxy.
01:01:53.680 --> 01:01:57.840
And play with it is an exercise that I will maybe not do right
01:01:57.840 --> 01:02:01.120
now, but I let you experiment with this. So that's an
01:02:01.120 --> 01:02:05.200
exercise you want to be able to own your own. If you don't have
01:02:05.200 --> 01:02:07.040
a domain, we have a domain.
01:02:07.840 --> 01:02:11.760
Run the the the the example I mentioned here number three,
01:02:11.760 --> 01:02:15.360
which is a properly issued SSL certificate website. Is it? It's
01:02:15.360 --> 01:02:19.120
how you can actually run a proper WordPress site by the
01:02:19.120 --> 01:02:23.520
way. For production use. So with that, I think what I would
01:02:23.520 --> 01:02:24.720
like to do is.
01:02:25.960 --> 01:02:30.720
Is switch over to my video feed and ask you questions. You
01:02:30.720 --> 01:02:31.760
are welcome to ask.
01:02:32.400 --> 01:02:35.440
If you have any. And by the way, this is streaming live, so you
01:02:35.440 --> 01:02:37.840
don't have to disclose your names. This is also, you know,
01:02:37.840 --> 01:02:40.640
you don't even have to speak if you don't. I can stop the
01:02:40.640 --> 01:02:43.520
streaming and then you can ask a private one on one question if
01:02:43.520 --> 01:02:46.960
you like. It's up to you. So if you have a question on the live
01:02:46.960 --> 01:02:49.680
feed for everybody else to listen to, you can ask the
01:02:49.680 --> 01:02:53.440
question. If you want to just do on a private meeting in a in a
01:02:53.440 --> 01:02:55.920
teams meeting setup and I'll disable streaming and then you
01:02:55.920 --> 01:02:59.360
can ask a question. It's up to you. You tell me what you want
01:02:59.360 --> 01:03:02.560
to do. I can stop streaming if you like, so you feel
01:03:02.560 --> 01:03:03.520
comfortable. Either way, tell me.
01:03:04.080 --> 01:03:07.120
Otherwise, if you don't say anything, I will stop the stream
01:03:07.120 --> 01:03:10.800
and then let you ask questions in private. So here I go
01:03:10.800 --> 01:03:11.840
stopping my stream.
01:03:12.720 --> 01:03:16.320
And I want to thank you guys listening on the stream. I'll
01:03:16.320 --> 01:03:20.240
see you next time. We run this session every Tuesday 730 PM on
01:03:20.240 --> 01:03:23.440
streaming. If you want to participate, come online on our
01:03:23.440 --> 01:03:27.840
teams meeting. You can join. It is free to join. Go visit this
01:03:27.840 --> 01:03:30.080
website here called. What is it called?
01:03:30.640 --> 01:03:32.600
The cloud seminar with the website.
01:03:34.080 --> 01:03:37.280
Yeah, go visit this website, thecloudseminar.com and here
01:03:37.280 --> 01:03:39.280
you will find upcoming events.
01:03:40.080 --> 01:03:44.560
Right there. Every Tuesday 730 PM, every Wednesday 8 AM India
01:03:44.560 --> 01:03:49.120
time and that's the session you will see list of sessions and
01:03:49.120 --> 01:03:52.960
the people who are participating live right now will decide the
01:03:52.960 --> 01:03:56.800
future sessions and I will update this content and you will
01:03:56.800 --> 01:04:01.280
see a new event pop up and that's where you need to join.
01:04:01.280 --> 01:04:04.480
And once you get once you click through, you register, you get
01:04:04.480 --> 01:04:07.040
an email notification and all that. So that's how you can join
01:04:07.040 --> 01:04:11.040
on my teams meeting with that. I will now stop the stream
01:04:11.040 --> 01:04:14.640
live stream session by disconnecting and saying goodbye
01:04:14.640 --> 01:04:18.400
to the people on various social media channels. The recording
01:04:18.400 --> 01:04:21.360
becomes available on Spotify, by the way, just so you know
01:04:21.360 --> 01:04:25.440
Spotify. Most people think of it as an audio platform. It also
01:04:25.440 --> 01:04:29.760
supports video podcast. So any recordings from our sessions
01:04:29.760 --> 01:04:32.560
goes there. For example.
01:04:34.160 --> 01:04:35.440
Spotify.
01:04:36.960 --> 01:04:42.640
And log in. And there is the podcast. You can see this two
01:04:42.640 --> 01:04:45.360
recordings from the previous and the video pops up.
01:04:46.240 --> 01:04:48.480
This is where you can hide it. This is where you can bring it
01:04:48.480 --> 01:04:51.760
back up. That's the video. If you play something that pops up.
01:04:51.760 --> 01:04:55.280
It's a video capable platform these days. Many people don't
01:04:55.280 --> 01:04:57.280
know about it, so people complain that you know I cannot
01:04:57.280 --> 01:05:01.440
see a video. But yes, you can with that. I'm going to stop
01:05:01.440 --> 01:05:04.800
streaming by streaming guys. Bye bye. See you next time.
01:05:04.800 --> 01:05:06.640
Bye bye. Stopping the stream now.
01:05:11.600 --> 01:05:12.800
OK, the stream is stopped.
01:05:14.640 --> 01:05:16.960
The streaming audience can no longer view the meeting. You're
01:05:16.960 --> 01:05:21.120
welcome to ask questions without having it like showing
01:05:21.120 --> 01:05:21.760
up outside.
01:05:21.760 --> 01:05:23.760
And there you go, hi.
01:05:25.840 --> 01:05:30.000
Can you hear me? I cannot hear you. Yeah, I heard you. I heard
01:05:30.000 --> 01:05:34.720
you go ahead. How are you doing? Yeah, all good. Actually, I
01:05:34.720 --> 01:05:36.240
joined a little bit later.
01:05:37.280 --> 01:05:40.720
Nobody nobody. So that says always a pleasure to hear you
01:05:40.720 --> 01:05:45.280
live. The live sessions are thanks for the live session. OK,
01:05:45.280 --> 01:05:46.560
yeah, you're welcome. So that's.
01:05:46.560 --> 01:05:49.760
Yeah, go ahead, OK. Hi.
01:05:51.280 --> 01:05:53.760
Yes, yes, it was a good session.
01:05:54.560 --> 01:05:57.760
I don't have right now questions because I don't really join.
01:05:59.280 --> 01:06:00.480
So I don't know.
01:06:01.760 --> 01:06:04.480
That means I was super clear and easy to understand.
01:06:06.400 --> 01:06:11.840
And I was I was just asking like another question key like on
01:06:11.840 --> 01:06:13.600
the other side of the screen.
01:06:13.600 --> 01:06:18.800
Key like on the other platform it was available on in video
01:06:18.800 --> 01:06:22.480
format or in audio format. I just checked in the night.
01:06:22.480 --> 01:06:25.280
Spotify is video. Spotify is video. I was just showing you
01:06:25.280 --> 01:06:28.720
that. Let me show you again. Spotify is a video platform. So
01:06:28.720 --> 01:06:32.720
here you go Spotify and you play one of these episodes and
01:06:32.720 --> 01:06:35.680
you play and he starts playing.
01:06:35.680 --> 01:06:44.720
And so I play the video from the last session and here is
01:06:44.720 --> 01:06:46.400
the recording you see.
01:06:53.200 --> 01:06:54.960
Live production and for your custom.
01:06:55.760 --> 01:06:58.480
Right, this is a video site you saw you saw it.
01:06:59.520 --> 01:07:00.720
Like that the other.
01:07:00.720 --> 01:07:05.440
The other is also a video podcast, so Docker Fundamentals.
01:07:06.000 --> 01:07:07.280
I will play it now.
01:07:09.280 --> 01:07:13.760
So these are videos that you can see on.
01:07:15.760 --> 01:07:19.280
On Spotify, if you don't see a video, you know you should tell
01:07:19.280 --> 01:07:20.720
me because something's wrong.
01:07:22.880 --> 01:07:26.800
Yes, it's actually I I checked in the night and I saw it.
01:07:26.800 --> 01:07:29.600
I know, I know there was a problem.
01:07:30.640 --> 01:07:34.160
There was a problem with Spotify, so I contacted them and
01:07:34.160 --> 01:07:37.840
they fixed it. That's why I'm telling you that it is now
01:07:37.840 --> 01:07:40.880
working according to Spotify and according to what I see.
01:07:42.000 --> 01:07:45.120
In fact, I also tweeted about it. Let's go see where that
01:07:45.120 --> 01:07:49.920
tweet is. I tweeted with a picture.
01:07:49.920 --> 01:07:56.000
Of how it is working for me. So here I go. See that the
01:07:56.000 --> 01:07:56.400
picture.
01:07:58.000 --> 01:07:58.800
Yes, see.
01:08:00.640 --> 01:08:02.480
Video shows up in Spotify like that.
01:08:03.520 --> 01:08:04.320
There's a link.
01:08:06.080 --> 01:08:09.600
And there's a vote that people can only hear audio playback,
01:08:09.600 --> 01:08:12.400
so only one person voted like that, so I want I'm I'm
01:08:12.400 --> 01:08:14.400
listening for feedback. I'm listening for feedback.
01:08:14.400 --> 01:08:17.120
I'm listening for feedback. I'm listening for feedback.
01:08:17.120 --> 01:08:20.480
So I want I'm I'm listening for feedback as to what people
01:08:20.480 --> 01:08:22.320
are seeing, but Spotify says.
01:08:23.440 --> 01:08:25.680
It is video. I see it as video.
01:08:26.800 --> 01:08:31.200
If I open Spotify on the phone, let's see what happens.
01:08:31.200 --> 01:08:32.400
I think should be video.
01:08:33.280 --> 01:08:35.520
So Spotify app started.
01:08:37.200 --> 01:08:42.480
Spotify app started as you can see, and then I'll open up my.
01:08:43.680 --> 01:08:44.320
My.
01:08:44.320 --> 01:08:48.000
Video and I'll play it.
01:08:49.520 --> 01:08:52.240
Come on, go away. I call it hello.
01:08:54.080 --> 01:08:56.640
And update post.
01:08:57.680 --> 01:09:00.720
Yeah, it is. It is working. The video is showing on the
01:09:00.720 --> 01:09:01.440
Spotify app.
01:09:02.800 --> 01:09:04.320
So it is working as video.
01:09:05.120 --> 01:09:07.360
I know some people did have trouble last night.
01:09:07.360 --> 01:09:13.760
And they were seeing only audio, which is strange, but.
01:09:13.760 --> 01:09:15.280
But yeah.
01:09:17.280 --> 01:09:20.640
So any other questions anybody else?
01:09:27.440 --> 01:09:31.440
Oh, Prashant says he can see a video. Let's see. Prashant just
01:09:31.440 --> 01:09:32.480
tweeted apparently.
01:09:32.480 --> 01:09:37.680
Akshay says seven tweets.
01:09:37.680 --> 01:09:40.400
Prashant is in India and he says.
01:09:41.360 --> 01:09:44.880
You can see the tweet so you can see the video, yeah.
01:09:51.440 --> 01:09:55.360
Did he tweet or sent me a photo on a DM? Yeah, so he says the
01:09:55.360 --> 01:09:58.400
DM picture and so there is the video DM.
01:09:58.400 --> 01:10:02.240
Hey Prashant, you should tweet public and tell people that you
01:10:02.240 --> 01:10:03.520
are able to see the video.
01:10:06.800 --> 01:10:08.960
DM is awesome, but tweet.
01:10:12.160 --> 01:10:12.800
Beautiful.
01:10:15.600 --> 01:10:16.320
What else?
01:10:18.800 --> 01:10:22.320
Are these sessions useful to you guys? Do you find it any
01:10:22.320 --> 01:10:23.920
use? At all?
01:10:23.920 --> 01:10:30.720
Yes, of course.
01:10:30.720 --> 01:10:30.960
Yes.
01:10:38.160 --> 01:10:39.760
Did Akshay say something funny?
01:10:40.480 --> 01:10:41.840
Yes, sir, go ahead.
01:10:45.680 --> 01:10:50.080
So Nilesh, I thought that the session would talk about Docker
01:10:50.080 --> 01:10:53.840
files. Well, what you showed was more into a Docker Compose.
01:10:53.840 --> 01:10:56.720
Involving Docker images, but it did not.
01:10:56.720 --> 01:10:58.000
It did not talk about anything.
01:10:59.280 --> 01:11:03.120
I know I know I Docker files. Yes, true, you're right. I began
01:11:03.120 --> 01:11:05.440
saying Docker files, but then I saw that I haven't finished
01:11:05.440 --> 01:11:08.160
that portion, so I jumped over to that to finish it and then
01:11:08.160 --> 01:11:11.040
next time we do Docker files and how to create them and all
01:11:11.040 --> 01:11:14.160
that detail. We had to do that and it's there in the exercise,
01:11:14.160 --> 01:11:14.400
but.
01:11:15.360 --> 01:11:18.960
In one hour, you can only fit so much and I don't want to jump
01:11:18.960 --> 01:11:22.160
to a next topic before covering the previous topics, and that's
01:11:22.160 --> 01:11:24.880
the reason why I began thinking about Docker files, but then I
01:11:24.880 --> 01:11:28.640
saw that you know what? Bang, I haven't done it, so I'll do
01:11:28.640 --> 01:11:31.680
it. Will it be discussed next week?
01:11:32.480 --> 01:11:35.440
Yes. Yes, I'll be there.
01:11:36.240 --> 01:11:37.760
Thank you, I'll see you there.
01:11:40.720 --> 01:11:43.280
Yep, otherwise it's a good good session, Nilesh.
01:11:44.320 --> 01:11:48.480
I'm glad you're liking it and glad you can make use of it.
01:11:48.480 --> 01:11:51.120
There's another chat here. What are people saying?
01:11:53.280 --> 01:11:54.000
Chat.
01:11:55.040 --> 01:11:58.720
So that goes without saying, though I need to do a lot of
01:11:58.720 --> 01:12:01.440
work with every Docker. The live sessions are useful,
01:12:01.440 --> 01:12:02.080
nevertheless.
01:12:04.800 --> 01:12:05.520
Suraj.
01:12:07.920 --> 01:12:10.880
It's not as microphone not working apparently, so he's
01:12:10.880 --> 01:12:14.080
typing and chatting, which is fine. No, no, no, no, no, no,
01:12:14.080 --> 01:12:16.160
no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no,
01:12:16.160 --> 01:12:18.560
no, no, no, no, no, no, no sessions are terrible.
01:12:23.680 --> 01:12:26.720
Sessions are terrible.
01:12:26.720 --> 01:12:27.840
I'm kidding.
01:12:29.840 --> 01:12:33.280
I know you. You. You. I think I've never told anybody
01:12:33.280 --> 01:12:36.800
else other than you, but your laughter sounds like Elon Musk.
01:12:38.240 --> 01:12:38.640
Really?
01:12:41.120 --> 01:12:44.480
Well, I don't have. I don't have a South African accent.
01:12:44.480 --> 01:12:52.240
It's tough to do. You don't? Yeah. Although the South African accent does sound a little bit
01:12:52.240 --> 01:13:03.040
British. British? Not Irish? No, not at all. Of course I can speak with an Irish accent. Oh wait, I can't.
01:13:03.040 --> 01:13:17.600
It's nice. This guy's hilarious. Well thank you very much. What's funny is that on St. Patrick's Day I
01:13:17.600 --> 01:13:24.240
actually spoke with an Irish accent. I felt, I felt, you know, I just wanted to, you know, throw
01:13:24.880 --> 01:13:30.880
laughter, well not throw laughter out, but to make the folks laugh so much because we're always,
01:13:30.880 --> 01:13:35.360
you know, you know, busy or we're stressed. I just wanted to make them, you know, feel a bit loose.
01:13:36.080 --> 01:13:42.480
Yes, yes, yes, yes. So by the way, I just want people to know that Namit is a Mridang player
01:13:44.240 --> 01:13:51.520
and he plays, he plays Mridang in our temple here in, in where we live. So he's, he's almost a
01:13:51.520 --> 01:14:03.600
neighbor, almost. He works at Boeing Company and plays nice Mridang and sometimes you will see him
01:14:03.600 --> 01:14:08.960
playing Mridang on live stream from the temple. Yeah, you won't see my face but you can hear me
01:14:08.960 --> 01:14:19.600
play it from time to time, not every day. Cool, cool, cool. So let me go have dinner and I'll let
01:14:19.600 --> 01:14:23.440
you guys enjoy your day and evenings wherever you live.