Home
Categories
EXPLORE
True Crime
Comedy
Society & Culture
Business
Sports
History
Music
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
1 day 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
More Docker Compose #0003
The Cloud Seminar
2 years ago
More Docker Compose #0003

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.

GitHub - beacloudgenius/dockerfiles at thecloudseminar.com
multi container architecture. Contribute to beacloudgenius/dockerfiles development by creating an account on GitHub.
GitHubbeacloudgenius

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.


The Cloud Seminar
Summary Confidently ship production cloud services like a genius ✨