Docker篇1-概念与实现

本文介绍了Linux容器和虚拟机的区别,重点解析了Docker如何基于LXC实现轻量级虚拟化。Docker利用Linux内核的Namespace进行资源隔离,如PID、Network、User、IPC和UTS Namespace,以及CGroups来控制资源配额,实现高效能的容器运行。由于CentOS 6内核版本过低,不支持User Namespace,因此无法运行容器。
摘要由CSDN通过智能技术生成

镜像与容器:

镜像是一个executable package,它包括一个应用程序允许所需的所有内容(代码、库、环境变量、配置文件等)

容器:

A container is launched by running an image.

A container is a runtime instance of an image.

容器与虚拟机:

Kernel:连接操作系统和硬件的一个中间组件;

VM:一个虚拟机运行一个完整的操作系统,通过Hypervisor对主机资源进行虚拟访问,每个虚机中都有一个独立的内核;

Container:所有容器运行在原生的Linux系统上,并共享同一个内核,不管有多少个容器,都只有一个操作系统和一个内核;

结论:VM会比容器消耗更多的资源

    VM1         VM2
 ____↑____   ____↑____
|   App1  | |   App2  |      Container1  Container2
|Bins/Libs| |Bins/Libs|       ____↑____   ____↑____
|---------| |---------|      |   App1  | |   App2  |
|Guest OS | |Guest OS |      |Bins/Libs| |Bins/Libs|
-----------------------      -----------------------
|     Hypervisor      |      |    Docker Engine    |
-----------------------      -----------------------
|     Host OS         |      |     Host OS         |
-----------------------      -----------------------
|   Infrastructure    |      |   Infrastructure    |
-----------------------      -----------------------
    Virtual Machine                  Docker

容器实现:

Docker 是基于 LXC(LinuX Container) 实现的。简单说,就是Docker利用Linux内核的NameSpace与CGroups特性,实现的一种轻量级的内核虚拟化技术。

LXC 本身只是一个工具集,用于管理容器,真正的实现是靠Linux内核的相关特性(如namespace和cgroup),LXC项目只是对此做了整合。LXC 借助于namespace的隔离机制和cgroup限额功能,提供了一套统一的API和工具来建立和管理container。

Namespace:隔离资源

LXC利用kernel namespace来隔离每个容器实例环境,每个容器使用的资源互不影响。

namespace定义的隔离资源包括:

PID NameSpace:Linux kernel 2.6.24,进程隔离
Network NameSpace:Linux kernel 2.6.29,网络设备、网络栈、端口等网络资源隔离
User NameSpace:Linux kernel 3.8,用户和用户组资源隔离
IPC NameSpace:Linux kernel 2.6.19,信号量、消息队列和共享内存的隔离
UTS NameSpace:Linux kernel 2.6.19,主机名和域名的隔离;
Mount NameSpace:Linux kernel 2.4.19,挂载点(文件系统)隔离;

centos6 版本不能使用容器原因是,centos6 内核版本是2.6,容器需要的User NameSpace,直到内核3.8版本才有。

CGroups:控制资源

即Control groups, 它实现了对资源的配额和度量,LXC利用 CGroups 来限制或控制容器使用的系统资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值