作者 | 乐章
编辑 | JAVA技术栈(id:javastack)
来源 | cnblogs.com/zhangxingeng/p/11236968.html
一、简介
1、了解Docker的前生LXCLXC为linux Container的简写 。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性 。相当于C++中的NameSpace 。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求 。
与传统虚拟化技术相比,它的优势在于:
(1)与宿主机使用同一个内核,性能损耗小;
(2)不需要指令级模拟;
(3)不需要即时(Just-in-time)编译;
(4)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制;
(5)避免了准虚拟化和系统调用替换中的复杂性;
(6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享 。
总结:Linux Container是一种轻量级的虚拟化的手段 。
Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制 。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化 。
2、LXC与docker什么关系?docker并不是LXC替代品,docker底层使用了LXC来实现,LXC将linux进程沙盒化,使得进程之间相互隔离,并且能够课哦内阁制各进程的资源分配 。
在LXC的基础之上,docker提供了一系列更强大的功能 。
3、什么是dockerdocker是一个开源的应用容器引擎,基于Go语言开发并遵循了Apache2.0协议开源 。
docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化 。
容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的App),并且容器开销极其低 。
4、docker官方文档https://docs.docker.com/
5、为什么docker越来越受欢迎官方话语:
- 容器化越来越受欢迎,因为容器是:
-
- 灵活:即使是最复杂的应用也可以集装箱化 。
- 轻量级:容器利用并共享主机内核 。
- 可互换:您可以即时部署更新和升级 。
- 便携式:您可以在本地构建,部署到云,并在任何地方运行 。
- 可扩展:您可以增加并自动分发容器副本 。
- 可堆叠:您可以垂直和即时堆叠服务 。
- 灵活:即使是最复杂的应用也可以集装箱化 。
- 镜像和容器(contalners)
容器是镜像的运行实例,当被运行时有镜像状态和用户进程,可以使用docker ps 查看 。
- 容器和虚拟机
虚拟机运行的是一个完成的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多 。
文章插图
6、docker版本Docker Community Edition(CE)社区版
Enterprise Edition(EE) 商业版
7、docker和openstack的几项对比
文章插图
8、容器在内核中支持2种重要技术docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)
1)namespaces 名称空间
文章插图
2)control Group 控制组
cgroup的特点是:
- cgroup的api以一个伪文件系统的实现方式,用户的程序可以通过文件系统实现cgroup的组件管理
- cgroup的组件管理操作单元可以细粒度到线程级别,另外用户可以创建和销毁cgroup,从而实现资源载分配和再利用
- 所有资源管理的功能都以子系统的方式实现,接口统一子任务创建之初与其父任务处于同一个cgroup的控制组
推荐阅读
- 梦见自己赌博把钱输光还欠下债 梦见自己赌博把钱输光周公解梦
- 大田,严把体检关 制好放心茶
- 梦见大哭把自己哭醒了压力大 梦见大哭把自己哭醒了的句子
- 梦见有人抓捕自己 梦见有人逮捕自己
- 梦到刷脏鞋是什么意思啊 做梦把鞋刷干净了
- 梦到拉屎在裤子里是什么意思 做梦把屎拉在裤子里是什么意思
- 恒品,别把养生茶喝成毒茶
- 梦见老虎把别人咬死了怎么能破解呢 梦见老虎把别人咬死了还追我
- 梦见有人拽我脚吓醒了是怎么回事 梦见有人拽我脚吓醒了 脚脖子还疼
- 梦见有人用刀割我脖子死了 梦见有人用刀割我脖子流了好多血