全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 行业问答 > > Docker和LXC有什么不同(docker和container的关系)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

Docker和LXC有什么不同(docker和container的关系)

发布时间:2 天 前 栏目:行业问答 浏览:

1、Docker和LXC有什么不同

二者的区别如下:

1、使用范围

LXC:Linux 环境

Docker:Docker 可以在 Linux 上运行,也可以在Windows 上运行。并且支macos,因此 Docker 并不完全依赖于 Linux,而是本机使用它运行的操作系统

2、人气

LXC:LXC 已经很老了,但由于一些限制,在开发人员和管理员中并没有得到多少普及

Docker:Docker 使容器超越了操作系统级别,以自身合并应用程序的粒度。可以说 docker 是 LXC 的扩展,因此受到欢迎

3、工具

LXC:LXC 工具与运行裸机服务器的传统系统管理员非常接近,即直接 SSH 访问,这允许使用团队可能在裸机或运行在其上的虚拟机上使用的自动化脚本Virtual Box 和任何其他虚拟化生产环境。这种可移植性功能使任何应用程序从传统 Linux 服务器迁移到在 LXC 容器上运行的过程非常无缝,但前提是尚未使用任何其他容器化解决方案,例如dockers。

Docker:在 Docker 的情况下,工具以 Docker CLI(命令行界面)为中心,其中包含用于列出镜像、收集和处理 Docker 镜像的命令。Docker Hub 是一个公共镜像注册中心,可以为常用应用程序提供对可变数量镜像的访问。如果需要,您还可以下载所需的操作系统镜像,以便在 docker 容器上运行。例如,假设一个 Docker 容器中的 Linux 操作系统。这个特殊的功能通常与一些 LXC 容器相关联,这使我们能够在不需要 VM 的情况下运行操作系统。但是,Docker 容器在处理应用程序时重量更轻,以支持快速节奏,实现更高的可扩展性,并使用微服务架构部署所需的应用程序。

4、生态

LXC:不需要任何其他供应商来提供 LXC 的工具,因为我们已经在 Linux 上使用的生态系统也足以支持 LXC

Docker:Docker 需要对庞大的生态系统提供更专业的支持。Docker 得到 AWS、IBM、Google 和 Microsoft Azure 等主要云提供商的支持。Docker 生态系统包括 Docker Swarm 来管理 Docker容器集群;Docker Trusted Registry 用于管理 Docker 镜像的注册表;Docker Compose 在需要交换数据的多个容器上启动多个应用程序,最后,Docker Machine 创建启用 docker 的虚拟机

5、使用便利

LXC:从 VM 迁移到 LXC 非常容易,因为 LXC 为系统映像运行标准的 init,这使您可以在 docker 容器上运行。例如,更不用说 Docker 容器中的 Linux 操作系统。这个特殊的功能通常与一些 LXC 容器相关联,这使我们能够在不需要 VM 的情况下运行操作系统。

Docker:Docker 容器在处理应用程序时重量更轻,以支持快速节奏,实现更高的可扩展性,并使用微服务架构部署所需的应用程序。

Docker和LXC有什么不同

2、linux下搭建网站和docker下搭建网站的区别?

这个问题问得有点矛盾。Docker是个容器工具,Linux是个内核(及相应的操作系统)。我推测你想问的是:把网站服务直接放在主机中和放在容器中的区别。

直接放在主机中是传统的做法,但是为了让网站顺利运行起来,你要进行充分的测试、安装相应的服务软件、配置环境等。如果你要升级服务,还有可能要停止服务,如果升级失败,要回退又是很麻烦的事。大一些的工程,你可能有很多个组在同时开发、测试、部署,大家的环境不见得一致,可能在你那儿能运行的服务,到我这儿就不行了。而容器正是为了解决上述这些问题而产生的。它的主旨是“把服务及所需要的环境封装在一起,并与主机隔离运行”。所以你可以有无数个容器运行在同一个主机上,各自之间相对独立,无论是开发、调试、部署、升级、交换都非常方便。而依托已有的各种镜像,连软件安装也是一步到位,更不用过分配置环境。同时,因为容易利用的是内核命名空间机制进行隔离,而不是独占资源,所以无论是启动还是多实例都是秒开,实在是居家旅行,馈赠亲友的必备良药。

Docker和LXC有什么不同

3、Docker和LXC有什么不同

Docker不是lxc的一个替代方案。“lxc”是指linux内核(尤指命名空间以及Cgroup)的一个特性,它允许其他一些沙盒进程运行在一块相对独立的空间,并且能够方便的控制他们的资源调度。

而基于底层的内核特性的基础上,Docker在上层构建了一个更高层次的具备多个强大功能的工具集:

可移植的跨机器部署。Docker定义了一个将应用打包的规范,而它的所有依赖都被封装到了一个简单对象里,它可以被传输到任意一台能运行 Docker的机器,并且在这里启动Docker的实例之后,它能够确保承载应用的执行环境将会与之前所定义的完全一致。Lxc实现了进程级的沙盒封装, 它是可移植部署的一个重要前提,但是要想实现可移植部署,仅仅是这样可还不够。如果你发送给我一份安装到一个自定义LXC配置下的应用副本,那么几乎可以 肯定的是,它在我的机器上运行的结果不会跟你的完全一样,因为它绑定了你机器的一些特殊配置:网络,存储,日志,Linux发行版本等等。Docker为 这些机器的特定配置定义了一个抽象层,所以它使得这些相同的Docker容器能够一成不变的运行在多个不同的主机上,甚至带上各种不同的配置。

以应用为中心。相对于机器而言,Docker被用于优化应用的部署过程。这可以从它的API,UI,设计理念还有文档里得到体现。反之,lxc的辅助脚本专注在把容器作为一个轻量级的 机器 使用 —— 基本上就是一堆启动更快并且内存需求更小的服务器。我们认为容器技术的内容远远不止这些。

自动构建。Docker为开发人员引入了一个可以用来把他们的源代码自动打包到容器里的工具,并且他们能够对于应用的依赖,构建工具,打包服 务等有着完全的自主掌控能力。他们能够自由的使用make,maven,chef,puppet,salt,debian包,rpm包,源码包,或者任意 以上的结合,而无需关心机器本身的配置。

版本化。Docker引入了一个类似git的特性来完成一个容器的连续版本追踪,版本之间的差异diff,新的版本的提交,回滚等。历史记录 信息里也包含了容器的用户信息以及他是如何构建它的,因此生产环境的服务器你都有充足的手段去一步步的定位到最上游的开发人员。Docker也实现了一个 增量上传和下载功能,类似于git pull,所以更换到新版本的容器只需要传输增量部分就行。

组件的重用。任意容器都能用作“基础镜像”来创建更特定的组件。这可以手工完成也可以做成自动构建的一部分。例如,你可以准备一个理想的 python环境,并且把它用作10个不同的应用的基础镜像。你所定义的标准postgresql设置可以被将来你手上的所有项目重用。诸如此类。

共享。Docker 有权访问一个公共的注册中心(

) 而这里有数以千计的业界人士上传各种各样有价值的容器:任一从redis,couchdb,postgres到irc bouncers再到rails应用服务器,Hadoop甚至是多个发行版本的基础镜像。该注册中心也包含了一个官方的“标准库”,这里提供了一些由 Docker官方团队维护的实用容器。注册中心本身也是开源的,所以任何人都能部署他们自己的私有注册中心来存储和下发私有容器,例如用于内网服务器的部 署。

工具生态圈。Docker定义了一个API来自动化和个性化的创建和部署容器。也因此催生了众多的工具集成到Docker,为之提供一些扩展 特性。类PaaS的部署(Dokku,Deis,Flynn),多节点编排(maestro, salt, mesos, openstack nova),管理看板(docker-ui, openstack horizon, shipyard),配置管理(chef, puppet),持续集成(jenkins, strider, travis)等等。Docker正在迅速的建立以它本身为标准的基于容器的工具生态圈。

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号