In this video, learn the main Docker concepts and use cases for developers and how as a developer you could use Docker.
- [Instructor] When you look at why Docker was created and why it is very popular, it is mostly for its ability to reduce the amount of time it takes to set up the environments where applications run and are developed. Just look at how long it takes to set up an environment where you have a node and express API for backend, which also needs Mongo. And then if you add your application, or frontend, you may need to set up several pieces there too. And that's just to start. Then when your team grows and you have multiple developers working on the same front and backend and therefore they need to set up the same resources in their local environment for testing purposes, how can you guarantee every developer will run the same environment resources, let alone the same versions? All of these scenarios play well into Docker's strengths where it's value comes from setting containers with specific settings, environments and even versions of resources and simply type a few commands to have Docker set up, install, and run your resources automatically. And more often than not, much faster too and these are the scenarios we'll cover in this course. Let's briefly go over the main components. A container is basically where your application or specific resource is located. For example, you could have the Mongo database in one container, then the frontend React application, and finally your node express server in the third container. Then you have an image, which is from what the container is built. The images contains all the information that a container needs to build a container exactly the same way across any systems. It's like a recipe. Then you have volumes, which holds the data of your containers. So if your applications are on containers, which are static and unchanging, the data that change is on the volumes. And finally, the pieces that allow all these items to speak is networking. Yes, that sounds simple, but understand that each container in Docker have no idea of the existence of each container. They're fully isolated. So unless we set up networking in Docker, they won't have any idea how to connect to one and another. So this was an overview of how Docker works and we'll explore this as we actually work on our application.
- Docker use cases for developers
- Deploying your first Docker app
- Using base commands
- Setting up back-end and front-end architecture
- Integrating Docker with CI/CD
- Working with swarms and Kubernetes