Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
As we've seen, Docker can simplify the entire software build and deployment process. Essentially, anytime you find your software runs properly on some machines but not others, Docker can help get things working consistently. Here are just a few examples.
New Terms
- Continuous Integration/Continuous Delivery -- The practice of deploying apps on every commit to certain source control branches and as soon as existing unit tests are ran and pass.
- Node.js -- Node.js is a runtime for the JavaScript language, which allows us to write server-side web apps in JavaScript and deploy them outside of the browser.
Further Reading
As we've seen, Docker can simplify
the entire software build and
0:00
deployment process.
0:04
Anytime you find your software
runs properly on some machines but
0:06
not others, Docker can help you
get things working consistently.
0:09
Here are just a few examples.
0:13
Dockers lets you run apps even if you
don't know how they work internally.
0:16
Suppose your co-worker sends
you a link to an internal repo,
0:20
and says she needs this app up and
running by the end of the day.
0:23
But the app's poorly documented, and
you struggle for hours to get it working.
0:26
Next time, if your co-worker
includes a Dockerfile with the app,
0:30
all you have to do is ensure the host
you're deploying to has Docker installed.
0:34
You'll be able to build an image using
the Dockerfile, then use that image to run
0:39
a container on the host, and the app
will immediately be up and running.
0:43
Docker also makes it easy to deploy
apps to multiple environments.
0:47
Suppose you want to load test your project
after it's deployed to your staging site.
0:51
You can use Docker to package your app,
and put it up at a certain URL.
0:55
And then have a load tester run
automatically once Docker finishes
0:59
deploying the container.
1:03
And Docker makes it easy to
share your apps with others.
1:04
Suppose you want to share your apps
with other teams in your company, but
1:08
sharing Git repos isn't enough.
1:11
You want to be able to immediately spin up
the apps with no installation required.
1:13
You can use a Docker registry,
sort of like a GitHub for
1:18
Docker to share as many Docker images as
you want with your company's other teams.
1:21
Then once they use Docker to
pull the images they want,
1:25
the image can be deployed as
a container with one simple command.
1:28
Because Dockerfiles make
running your files so
1:32
easy, Docker can handle these
used cases and many more.
1:34
Docker fits right in to
the DevOps movements,
1:38
infrastructure as code philosophy.
1:41
You can create containers for
any app, website, or service
1:44
using a single Dockerfile, which is just
the plain text file with some commands.
1:47
By now, you're hopefully thinking of
adopting Docker for your own projects.
1:52
If you do, you'll be in good company.
1:56
Even though it was only released in
mid-2013, it's already immensely popular.
1:59
Docker CEO announced in
the 2016 DockerCon keynote that
2:04
460,000 Dockerized
applications had been made.
2:09
That number had grown by a factor
of 31 times over two years.
2:12
Over 4 billion containers have been pulled
so far from the public Docker registry.
2:17
And as of 2016,
there were 125,000 Docker Meetup members.
2:23
Clearly, Docker has a huge following.
2:28
And hundreds of thousands,
if not millions,
2:31
of hours have gone into its
development and improvement.
2:33
In 2017, it would be hard to name a major
tech company that hasn't tried Docker.
2:36
And many are using it in production.
2:41
Docker can be used for many more purposes
beyond those we've already shown.
2:44
The versions of libraries and
2:48
services that your app depends
on may change over time.
2:50
Docker can act like a version control
system for those dependencies
2:53
allowing you to roll back to an old
version of a service, if something breaks.
2:57
Docker can help you maintain consistency
between your developers work stations and
3:02
the testing and production environments.
3:06
If you bundle all the services your
app depends on into a container,
3:08
you can be sure that the services
your developers are writing code for
3:12
are the same services used in testing and
production.
3:15
And Docker can help you
deploy distributed apps.
3:19
If your app needs to run on a server
cluster consisting of hundreds or
3:22
thousands of machines, configuring
them manually just isn't an option.
3:26
But if you ensure Docker is installed on
all those hosts, they'll be able to load
3:30
all the services your app requires
from a single Docker image.
3:34
That's it for stage one.
3:38
Now, you should have a general
idea of what Docker is, and
3:40
what businesses are using it for.
3:42
In stage two,
we'll look at exactly how Docker works.
3:45
Ready?
3:48
Let's get to it.
3:49
You need to sign up for Treehouse in order to download course files.
Sign up