Docker容器原理与实现

您所在的位置:网站首页 docker的原理 Docker容器原理与实现

Docker容器原理与实现

2022-11-06 03:49| 来源: 网络整理| 查看: 265

Docker

容器的原理与实现

周成玉

【摘要】

Linux

容器(

Linux Container

LXC

)是

docker

的核心技术之一,

LXC

利用

chroot

namespace

cgroup

等技术实现资源的隔离和配额,文章剖析了

LXC

的原理和实现。

【关键词】

chroot, namespace, cgroup, LXC 

1

、概述

海关已经广泛使用虚拟机技术多年,

IT

资源利用率得到有效提高。近年来,基于

Docker

的轻量级虚

拟化技术正成为

IT

技术热点之一。与传统虚拟机相比,

Docker

技术本质上是一种

LXC

引擎。

VM

LXC

注的问题都是资源的隔离和配额,

VM

采用

CPU

memory

disk

等硬件虚拟化技术,

LCX

则借助了

chroot

namespace

cgroups

等系统调用。

2

LXC

的资源隔离

2.1

chroot 

chroot

change root directory,

更改

root

目录)

,最早在

1979

年的

Unix V7

使用,并在各个版本

linux

系统中得以保留。在

linux

系统中,系统默认的目录结构都是以“

/

,即根

(root)

开始的。

通过使用

chroot

系统读取到的目录和文件将不在是旧系统根下的而是指定的新位置下的目录结构和

文件,这样带来两个好处:

1

)增加系统的安全性,限制用户权力。经过

chroot

之后,在新根下将访问不到旧系统的根目录结

构和文件,这样就增强了系统的安全性。在登录

(login)

前使用

chroot

,阻止用户访问特定目录。

2

)建立一个与原系统隔离的系统目录结构,方便用户的开发。使用

chroot

后,系统读取的是新根

下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件

的静态编译以及一些与系统不相关的独立开发。

Docker

就是利用

chroot

功能,实现每个容器里看到的文件系统都是一个完整的

linux

系统。下面来

看一个简单

shell

脚本,将某个进程及其子进程访问根目录限制在“

/home/container

”目录,该进程及

其子进程将不能访问

linux

系统的其他目录。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3