一、docker简介发展

1.什么是容器

我们在生活中容器有很多,比如盘子,碗,一个桶都可以理解为一个容器

而在Linux中容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等

进程:正在运行的程序,代码运行起来的时候就是一个进程

2.什么是docker

docker只是诸多容器中的一个佼佼者,或者说是docker让容器被我们熟知.

3.什么是内核

(Linux)内核是(Linux)操作系统的核心,一般包含五大部分:进程管理、存储管理、文件管理、设备管理和网络管理,是一组程序模块,具有访问硬件设备和所有主存空间的权限,是仅有的能够执行特权指令的程序。主要功能是:资源抽象、资源分配、资源共享。(资源是指CPU、内存等。)在内核基础上挂载第三方软件便构成操作系统,Ubuntu、RedHat、Fedora、Debian等都是基于Linux内核(版本号可能不同)的不同操作系统。

内核函数对用户是完全透明的,用户想要调用内核函数只有两种途径:一是 应用程序→系统调用(程序接口)→操作系统;二是 操作命令→系统程序(作业接口)→操作系统。


4.虚拟机和容器的区别

1)虚拟机是需要完全仿制一套开机流程,比如他要模拟计算机的硬件,bios自检,启动引导,加载内核等等之类的,所以虚拟机启动分钟级别很缓慢,并且启动一个虚拟机就相当于模拟了一个真实的电脑,所以内存,CPU占用都是和真机一样的,内核是独立的,资源占用大.

2)容器他不用模拟计算机的硬件,因为他和宿主机共用一个内核,而容器为了优化,也把第一个进程改为了服务进程,因为他不需要模拟硬件,自然跳过了很长的开机时间,直接用宿主机内核,启动,秒级别,轻量,损耗少,性能高

3)优缺点

虚拟机优点:

内核级隔离,每个虚拟机都有自己的一套系统,隔离性能好.

容器优点:

启动快,轻量,损耗少,性能高


5.容器的发展历史

早在1979年,就有了容器技术的雏形,changeroot技术的引进开启了进程隔离大门。2000年,FreeBSD Jails技术将计算机分为多个独立的小型计算系统。2006年,谷歌推出了Process Containers技术,在进程隔离的基础上,进行了计算资源的限制。2008年,LXC作为第一个具有完整意义的容器管理工具。2013年,LMCTFY实现了Linux应用程序容器化,成为libcontainer的重要组成部分。同年,Docker出现,容器的关注度出现爆发性的增长。Docker最初使用LXC,后来替换为libcontainer。


6.docker是用的隔离技术

1)cgroups限制一个进程能够使用的资源cpu 内存 硬盘io

2)namespaces 资源隔离


7.docker和lxc的关系

在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎。把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系。随着Docker的不断发展,它开始有了更为远大的目标,那就是反向定义容器的实现标准,将底层实现都抽象化到Libcontainer的接口。这就意味着,底层容器的实现方式变成了一种可变的方案,无论是使用namespace、cgroups技术抑或是使用systemd等其他方案,只要实现了Libcontainer定义的一组接口,Docker都可以运行。这也为Docker实现全面的跨平台带来了可能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容