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.
- 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.
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