Now it turns out there are different kinds
of projects you could be working on which utilize Docker,
you could have one or more containers,
you might wanna deploy it on one or more target servers.
And we're going to have a look
at these different scenarios throughout this section,
slowly building up on each other.
But of course, we're going to start
with a basic first example,
so that we can understand the basics
at a simple example before we then later also dive
into more complex ones.
And therefore, we're going to start
with a very simple NodejS application,
which has no database, nothing else.
So it's just one image, one container
and one application in that image and container.
And for this basic example, we're going to start
with one basic possible deployment approach,
where we set up a remote server,
we then install Docker on that remote host,
we connect via SSH for example,
and you'll see this in action in just a second.
We then push our Docker image
from our local hosting machine,
where we developed the application
to a Docker registry like Docker Hub,
we then pull that image from the remote host
to that remote host.
And we then run that container on that remote host,
and expose all ports to the World Wide Web
that need to be exposed.
So that end users can visit our application or our website.
That's what we're going to do in this module,
or that's what we're going to start with in this module,
setting up a remote machine, a remote hosting server,
connecting to it with SSH, then install Docker
on that remote host, pushing and pulling the image,
running the container and then testing it in the browser.
So in order to get started,
we need a remote server, a remote machine.
And there are multiple hosting providers
you could use for that.
Indeed, there are hundreds
and thousands of Docker supporting hosting
providers out there.
And you can simply google for Docker hosting provider.
And you'll see a bunch
of advertisements, a bunch of providers.
And you will also find articles like this one,
which compares possible options you could go for.
So definitely consider searching for this
if you have your own application,
which you wanna deploy.
And once you chose a provider,
you should always dig into the documentation
of that provider because the exact steps
on how to connect to your remote machine,
or on how to bring containers onto
the remote machine will always differ.
Now, there are three major big hosting providers
out there though.
And that would be AWS, the Amazon Web Services,
Microsoft Azure and the Google Cloud Platform.
These are three major hosting providers,
which are more than just hosting providers.
These are cloud service providers,
which have tons of cloud services,
which can help you with anything
that you might want to do in the cloud,
from web development, web hosting, all the way up
to machine learning and whatever you wanna do there.
So they do offer way more than just web hosting.
Though in this course, we're going to utilize one
of them for web hosting.
And as I just mentioned before,
you should always have a look at the websites
of these cloud providers to learn more about their products
and how these products work, it also
will turn out that they have multiple products
that can help you with Docker containers.
And I will walk you through some
of the most important ones for AWS in this course.
But obviously, this is not a cloud hosting provider course.
It's a Docker course.
And therefore I'm not going to cover all hosting providers
and all products you could use.
But I will show you different ways
of bringing your Docker containers to live on AWS
in this specific course.
Since it's the biggest cloud hosting provider
or the biggest cloud service provider,
and they offer by the end of the section,
you will have a very good understanding
of why we have multiple services
and how you could utilize them for
your own projects as well.
Now, as I just said, we're going to use AWS
in this course because it's the biggest hosting provider.
But I also have to warn you,
you will need a credit card in order to follow along,
but that will be the case for pretty
much all major hosting providers.
And if you don't have one, you for the moment
of course can also just watch the videos
and then follow along once you got a real project
you wanna deploy, at which point
you will need a credit card anyways,
because at some point you will need a hosting provider,
where you will of course also have to pay
for hosting and for using their services.
Now, I will say though, that for AWS,
if you check out their pricing page,
which you definitely should do,
if you plan on using their services for your own project,
they do have a so called free tier.
And that simply includes a bunch of services
and certain quotas for these different services,
which you can use for free.
For example, EC2,
which is their remote hosting machine service,
you could say, you got 750 instance hours
for free every month for the first 12 months.
And that effectively means that you can run one
of these remote servers for free within the first 12 months.
But check out this page since it might change over time
to find out what's included and to avoid
any unwanted surprises.
So now with that out of the way,
I am indeed going to start by launching such an easy
to instance, which is basically a remote server hosted
by AWS and I will show you how we could use this easy
to instance to install Docker on it and launch
our Docker container on this remote machine then