Containers have many traits that have made them the most desirable method for running new applications. Let's clear up the confusion. Watch this video to learn what containers are and aren't.
- [Instructor] Throughout this course, we'll be running a lot of different containers with Docker for Windows. If you're still wondering what exactly is a container, then this video is for you. If you already feel comfortable with the definition of containers, then you can move on to a future video in the course. Containers have a number of different qualities. First off, containers are flexible. They allow any application, Windows or Linux, no matter how complex, to be stored in this thing called a container.
So they're very flexible, they work with any application. They're also very lightweight. You don't have to install any operating system in the container because the container's going to use the host operating system where Docker is installed. Containers share the kernel with the running operating system. Containers are also interchangeable. They can be easily updated or replaced as needed. Have you heard of the pets versus cattle analogy? It said that traditional applications in the data center, whether they're on physical hosts or virtual machines, are always treated as pets, meaning you care for them as if they're your own personal dog or cat.
Containers, on the other hand, are treated as cattle, where you don't know their name. You can simply replace them and get new ones at any time. Containers are also very portable. They can easily be moved from your local laptop to the data center, and then to the cloud without any modification needed. Containers are also scalable. You can easily add or remove new containers as your demands increase or decrease. And finally, containers are stackable. When needed in a production data center, you can easily create stacks of containers that are a hierarchy of interrelated services that share dependencies and they can be orchestrated and scaled together.
To sum it all up, containers are software-based. They're stand-alone. They're executable. You can run a container. They're small, compared to traditional virtual machines. They're usually very lightweight. They're standardized. I can run Docker containers on any Linux or Windows host in the data center, the desktop, or in the cloud. Containers also provide a level of security. What happens in a container is walled off from other things on the host operating system.
And finally, they include everything needed to run the application. So you can simply download a container and run it right away without ever having to install an OS or an application. For example, in the diagram here, we have three different containerized applications. These could all be three web servers, they could be three different Windows operating systems, like Windows Server Core, or they could be a database, a web server, and a file share. They run on top of the Docker engine, whether that Docker engine is in the data center, on your desktop, or in the cloud.
The Docker engine runs on top of an operating system, which could be Windows or Linux, and that operating system runs on top on infrastructure, which includes CPU, memory, and disk. And that infrastructure, again, could be your local laptop, or it could be a server in the data center. The bottom line is that containers make running new applications easier than ever before.
- Comparing containers, virtual machines, and Docker images
- Installing and configuring Docker for Windows
- Using Kubernetes for container orchestration
- Deploying containers
- Configuring container storage and networking
- Installing Docker on Windows Server
- Enabling Hyper-V containers