Docker

What is Linux Container

In a normal virtualized environment, one or more virtual machines run on top of a physical machine using a hypervisor like Xen, Hyper-V, etc.

Containers, on the other hand, run in userspace on top of operating systems kernel. It can be called as OS-level virtualization.

Each container will have its isolated user space and you can run multiple containers on a host, each having its own userspace. It means you can run different Linux systems (containers) on a single host.

Containers are isolated in a host using the two Linux kernel features called.

  • NameSpaces
  • Control Groups

Namespaces

pid Namespace: Responsible for isolating the process (PID: Process ID).

net Namespace: It manages network interfaces (NET: Networking).

ipc Namespace: It manages access to IPC resources (IPC: InterProcess Communication).

mnt namespace: Responsible for managing the filesystem mount points (MNT: Mount).

utc namespace: Isolates kernel and version identifiers. (UTS: Unix Timesharing System).

Control Groups:

The resources used by a container is managed by Linux control groups. You can decide on how much CPU and memory resource a container should use using Linux control groups.

 

Container is not a new concept. Google has been using its own container technology in its Infrastructure for years. Solaris Zones, BSD Jails, LXC are the few Linux container technology that has been around for years. In this article, we will learn about Docker and see why Docker is very useful and different from other container technologies.

What Docker does?

Pre-requisites of Docker

Docker on Windows?

Docker Versions

Install Docker

Which Cloud ?

Let's Survey

Decision

What Next?

Made with Slides.com