您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

docker背后的原理

时间:2022-02-11 10:10:40  来源:  作者:浩仔浩仔
  • 隔离

vmware使用supervisor模拟出硬件,然后在其之上安装完整的一套操作系统,这套完整的操作系统跑在宿主机操作系统之上,被宿主机操作系统调度,所以较为重量。

Docker复用宿主机操作系统的内核,作为普通进程调用,使用linux提供的namespace隔离技术来实现虚拟化,是一种轻量级虚拟化技术。namespace表示一个标识符的可见范围,各namespace互不相干,所以标识符能够任意定义而不冲突。

linux提供6种namespace:UTS(主机名)、User、Mount(文件系统)、Net、IPC、Pid。有了这几种名称空间,会让进程自身觉得跑在一台独立的操作系统上,这是操作系统的欺骗性。

docker轻量,一次封装到处运行,启动快,所以很适合做扩缩容、微服务。

  • 网络

docker默认会使用bridge网络模型,即容器中的有veth的一端,另一端veth连接到bridge网桥上,网桥连接宿主机网络,使用NAT来实现和外部通信。veth的原理是这样,通常成对出现,发送给veth一端的包可以被另一端接收到。

docker还有其他几种模型,比如没net,容器中只有环回网络loopback。联合net,多个容器使用相同的veth。hostnet,容器直接使用宿主机网络。

docker背后的原理

 

 

  • 镜像

镜像是一个可执行的软件包,包含运行应用程序所需的一切。

docker背后的原理

 

docker的镜像使用分层结构,就是所谓的“分层存储,联合挂载”。

docker背后的原理

 

最下面一层是bootfs,包含bootloader。再往上是根系统镜像层,再往上是各种镜像层,除了最上层是可读写之外,其余层均为只读层。所以,如果在顶层镜像有对下层镜像数据做修改的话,该数据会COW(copy on write)复制到顶层进行,然后再进行修改。所以,可想而知,这种联合挂载文件系统的效率不是很高,所以在使用中会用到volume,卷,即脱离于分层存储的存储。



Tags:docker   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
隔离vmware使用supervisor模拟出硬件,然后在其之上安装完整的一套操作系统,这套完整的操作系统跑在宿主机操作系统之上,被宿主机操作系统调度,所以较为重量。而docker复用宿主...【详细内容】
2022-02-11  Tags: docker  点击:(0)  评论:(0)  加入收藏
既然k8s 底层是支持docker runtime的,那么我们自然也可以通docker run 的方式启动一个Pod。 首先我们创建一个Pod 级别的cgroupsudo cgcreate -g cpu,memory:/pod-foo# 查看...【详细内容】
2022-01-25  Tags: docker  点击:(21)  评论:(0)  加入收藏
docker部署一般的,微服务的部署方式都是采用java -jar xxx.jar。这样程序就可以正常启动了。但是,随着技术的发展,脚本方式部署只能启动单台服务的启动。因此,微服务容器化部署...【详细内容】
2022-01-24  Tags: docker  点击:(19)  评论:(0)  加入收藏
一、docker 原理docker是什么?Docker 是完整的一套容器管理系统,所以想要搞懂 Docker 的概念,我们必须先从容器开始说 起。什么是容器? 容器是用来装东西的(类似运行的启动盘),Li...【详细内容】
2022-01-20  Tags: docker  点击:(22)  评论:(0)  加入收藏
前言近段时间沉迷在自己的黑群晖和新入手的威联通TS-262C上捣鼓各种docker服务,比如用来观影的jellyfin,用来下载种子的transmission和Qbit等等。 TS-262C是威联通最新发布的...【详细内容】
2022-01-14  Tags: docker  点击:(22)  评论:(0)  加入收藏
一、前因闲来没事,想着升级下树莓派中的应用,没曾想,全是最新的,害我以为被黑客眷顾,帮我升级了。多方查证,才知道,是上次搭建的photoprism搞的鬼,不过也不全是它的锅,只是它的yml文...【详细内容】
2021-12-28  Tags: docker  点击:(43)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  Tags: docker  点击:(37)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  Tags: docker  点击:(28)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  Tags: docker  点击:(69)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  Tags: docker  点击:(68)  评论:(0)  加入收藏
▌简易百科推荐
隔离vmware使用supervisor模拟出硬件,然后在其之上安装完整的一套操作系统,这套完整的操作系统跑在宿主机操作系统之上,被宿主机操作系统调度,所以较为重量。而docker复用宿主...【详细内容】
2022-02-11  浩仔浩仔    Tags:docker   点击:(0)  评论:(0)  加入收藏
既然k8s 底层是支持docker runtime的,那么我们自然也可以通docker run 的方式启动一个Pod。 首先我们创建一个Pod 级别的cgroupsudo cgcreate -g cpu,memory:/pod-foo# 查看...【详细内容】
2022-01-25  云技术趣谈    Tags:docker   点击:(21)  评论:(0)  加入收藏
docker部署一般的,微服务的部署方式都是采用java -jar xxx.jar。这样程序就可以正常启动了。但是,随着技术的发展,脚本方式部署只能启动单台服务的启动。因此,微服务容器化部署...【详细内容】
2022-01-24  下一站studio    Tags:Docker   点击:(19)  评论:(0)  加入收藏
一、docker 原理docker是什么?Docker 是完整的一套容器管理系统,所以想要搞懂 Docker 的概念,我们必须先从容器开始说 起。什么是容器? 容器是用来装东西的(类似运行的启动盘),Li...【详细内容】
2022-01-20  山河已无恙i    Tags:Docker   点击:(22)  评论:(0)  加入收藏
前言近段时间沉迷在自己的黑群晖和新入手的威联通TS-262C上捣鼓各种docker服务,比如用来观影的jellyfin,用来下载种子的transmission和Qbit等等。 TS-262C是威联通最新发布的...【详细内容】
2022-01-14  噩梦飘雷    Tags:docker   点击:(22)  评论:(0)  加入收藏
一、前因闲来没事,想着升级下树莓派中的应用,没曾想,全是最新的,害我以为被黑客眷顾,帮我升级了。多方查证,才知道,是上次搭建的photoprism搞的鬼,不过也不全是它的锅,只是它的yml文...【详细内容】
2021-12-28  闲余悟道    Tags:Docker   点击:(43)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(37)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(28)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(69)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(68)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条