-: So these are the core Docker and container concepts.
And now we got two main areas
where we can use these concepts,
locally on our local machine for development
and for having reproducible
and isolated development environments
and on remote hosts, remote machines,
so when we wanna deploy an application with Docker.
Now on our local host, so on our local system
Docker is amazing because we have isolated, encapsulated,
reproducible development environments
which won't clash with any other environments
we might have on our system
where we don't have any cross dependencies
and where therefore development on our local machine
becomes very convenient and easy to manage.
Hence even if you never deploy, your Dockerized applications
Docker is still an amazing tool.
And there are many developers out there
which only use Docker locally on their system
to have these isolated projects
and avoid clashes between versions and run times
when they are working on multiple projects.
So Docker is not just there
for deploying containers onto a remote machine
and exposing your app to real users.
It's perfectly fine to use Docker
just locally on your system
because it offers many advantages there.
But of course, we can also deploy our containers
onto remote machines, onto remote hosts
basically for the same reasons why it's awesome locally.
We have isolated, encapsulated
and most importantly, reproducible environments.
What worked locally will work on a remote machine as well.
There are no unwanted surprises
because it's all in the container
and all in the image for that container.
Updating is also simple
because we just need to replace an existing container
with the updated one
which for example, contains the updated source code.
So we just replaced the existing container and we're good.
There is no complex updating process involved.
That's all we gotta do.
So Docker really is amazing for both.
And it's up to you whether you wanna use it for both
or maybe whether it's enough for you to work with it locally
because you don't deploy applications in general maybe,
because you've just got a bunch of side projects
or maybe because also deploying Docker containers
is a bit too much overhead
for the kind of application you're building.
So these are the two main areas
where you can use Docker and containers,
and Docker and containers do shine in both of them.