一文带你认识Docker

Docker是一个容器技术的应用,而底层是由于Linux容器实现的,Docker只是实现层。

一、Linux容器

1、隔离与共享

一台服务器运行着多个逻辑隔离的服务器进程,谁的运行环境都不希望影响到谁,也就是一个物理机需要虚拟出多个环境或容器,Linux提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,但又能共享很多底层的资源。

 

2、实现基础

Linux容器功能是基于cgroups和Namespace实现的。

(1)cgroups(control groups 控制组)

cgroups是将进程分组管理的内核功能,通过cgroups可以隔离进程,同时还可以隔离进程的资源占用(cpu,内存等)情况,在操作系统底层限制物理资源,起到container的作用,进程可用的cpu资源由cpuset指定。

(2)Namespace

 

Namespace让每个进程拥有独立的PID、IPC和网络空间。Namespace是通过clone系统调用来实现的。clone系统调用的第三个参数flags就是通过设置Namespace来划分资源的。

 

Linux一共构建了6种不同的Namespace,用于不同场景下的隔离

Mount - 隔离文件系统挂载点

UTS - 隔离主机名和域名

IPC - 隔离进程间通信资源

PID - 隔离PID空间

Network - 隔离网络接口

User - 隔离用户/用户组空间

 

二、Docker简介

一文带你认识Docker

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfsxd.html