LINUX
CONTAINERS
What is Linux Container:
Linux
containers have different approach than the Virtualization
technology. Simply we can say this is OS level Virtualization, which
means all containers run on top of one linux operating system. We can
start containers on a hardware running machine or inside of running
virtual machine. Each container run's as a fully isolated operating
sysem.
In
container virtualization rather than having an entire Operating
System guest OS, containers isolate the guest but do not virtualize
the hardware. For running containers one needs a patched kernel and
user tools, the kernel provides process isolation and performs
resource management. Thus all containers are running under the same
kernel but they still have their own file system, processes, memory
etc.
Linux
based containers mainly involved with two concepts:
1.
Namespaces
2.
Cgroups ( Controll Groups)
There
are total 6 types of Namespaces:
1. PID
Name space.
2. Net
Name space.
3. Ipc
Name space
4. Mnt
Name space
5. Uts
Name space
6. User
Name space.
Cgroups
are already well known technology. We can find more detail about Cgroups here
There
is an another important aspect of containers “Copy on write file
system” This is
also a well known technology in market:
Docker
Architecture:
1.
Docker Daemon
docker
daemon is responsible for all the conainer operations. It runs on the
docker host machine. We can't interact with this directly, all the
instructions have to be sent through the docker.
2.
Docker Client: It is the main interface to connect wit docker daemon.
It can be install on the same machine or on the different machine.
3.
Docker image: A Docker image is like a golden template. An image
consists of OS (Ubuntu, centos etc.,) and applications installed on
it.
4.
Docker registry: That is a repository for docker images. It can be
public or private. Public repository are maintained by docker is
called docker hub. Users can upload and download images from there.
5.
Docker Container: It is created on top of a docker image and it is
completely isolated. Each container has it's own user space,
Networking, and security settings associated with it.
INSTALLATION
OF DOCKER
Docker
can be installed on CentOS 7 without activating extra repository. Only we need to update the system:
# yum
update -y
# yum
install docker docker-registry
#
systemctl start docker
#
systemctl enable docker
#
systemctl status docker
Now we
can launch the container using following command:
#
docker run ubuntu:14.04 /bin/echo ‘Welcome to the Container world’
1.
docker run ==> is the command to run a container
2.
ubuntu:14.04 ==> This is the image name. First it will find the
image locally, if this is not there then pull it from docker hub
account.
3.
/bin/echo 'Welcome to the Container world' ==> This is the
command, which will be executed inside if container.
Creating
an interactive container
Previous
command will create the container, but it was not interactive. To
create the interactive container we can use following comamnd.
#
docker run -it ubuntu:14.04 /bin/bash
1. -i
==> Make it interactive
2. -t
==> Open the terminal.
3.
/bin/bash ==> Command which we want to execute inside the
container.
Done...
Nice post.Thank you so much for sharing this.MCITP Online Training trainings are integrated with modules that include thorough and specific principles to provide equip IT individuals a radical understanding and perception concerning the engineering.
ReplyDeleteThanks Layla Elliston
ReplyDelete