Join Arthur Ulfeldt for an in-depth discussion in this video What is Docker?, part of Learning Docker.
- [Instructor] Docker carves up a running Linux system into small containers, each of which is it's own sealed little world, with it's own programs, and it's own everything. All isolated from anything else. These containers are designed to be portable so they can be shipped from one place to another, and Docker does the work of getting these containers to and from your systems. Docker also builds these containers for you, and it's a social platform to help you find and share containers with others who may have already built very similar work that you can build on top of.
And let's get it up front, that Docker is not virtual machines. There's only a single operating system running. That operating system is just carved up into isolated little spaces. A container is a self contained sealed unit of software. It has everything in it that is needed to run that code. I mean all of it, batteries included, operating system included, it has all of the code, all of the configs, contains all the processes within that container, it has all of the networking to allow these containers to talk to the other containers they're supposed to be able to talk to, and nothing else.
It has all the dependencies that your system needs, bundled up in that container. And it even includes just enough of the operating system to run your code. So the way it works, it takes all the services that make up a Linux server. Networking, storage, code, interprocess communication, the whole works, and it makes a copy of that in the Linux Kernel for each container. So each container has its own little world that it can't see out of, and other containers can't see in.
You might have one container on a system running Red Hat Linux, serving a database, through a virtual network to another container running Ubuntu Linux, running a web server that talks to that database, and that web server might also be talking to a caching server that runs in a SUSE Linux based container. The important part to understand is it doesn't matter which Linux each container is running on, it just has to be a Linux. And Docker is the program which manages all of this. Sets it up, monitors it, and tears it down when it's no longer needed.
Docker is a client program, named Docker, it's a command you type at the terminal. It's also a server program that listens for messages from that command, and manages a running Linux system. Docker has a program which builds containers from code. It takes your code along with its dependencies and bundles it up and then seals it into a container. And it's a service that distributes these containers across the internet and makes it so you can find other's work, and the right people can find your work.
It is also a company that makes all of these.
- Installing Docker on Mac, Windows, and Linux
- Understanding the Docker flow
- Running processes in containers
- Managing, networking, and linking containers
- Working with Docker images, volumes, and registries
- Building Dockerfiles
- Managing networking and namespaces with Docker
- Building entire systems with Docker