问题
换言之:
发布于 2016-02-20 22:42:17
LXD与LXC一起工作,不用于替换或取代LXC。相反,它的目的是通过添加支持REST的后端守护进程和通过REST与本地守护进程和远程守护进程一起工作的简单的CLI客户机,使基于LXC的容器更容易使用。
LXD更像是码头主机。
发布于 2016-02-08 14:35:29
lxd如何在容器中提供完整的操作系统功能,而不仅仅是单个进程?
容器是独立的Linux系统,使用cgroup功能来限制Linux内核中的cpu/内存/network/等等,而不需要启动一个完整的虚拟机。
LXD使用liblxc (基于LXC)提供的功能,并由此提供了完整OS功能的功能。
它与lxc/docker + wrappers有何不同?
LXD使用来自LXC的liblxc。Docker更注重应用程序,只有容器内应用程序的主要进程(默认情况下使用did容器,Docker首先使用liblxc )。
是否类似于在一个容器中包含多个进程的容器,该容器是用docker +主管/包装器脚本启动的?
类似的东西。LXD和Docker的区别在于Docker是一个应用程序容器,LXD是一个系统容器。LXD使用upstart/systemd,就像容器中的主体进程一样,默认情况下,它已经准备好成为一个完整的VM环境,内存/cpu使用量非常小。是的,您可以使用supervisorctl/runit构建您的对接程序,但是您需要手动执行这个过程。您可以检查在http://phusion.github.io/baseimage-docker/中如何在容器中执行类似的操作。
对于lxd,对于lxc和docker的包装,我能做些什么呢?
容器的实时迁移,像使用完整的虚拟机一样使用容器,专用cpu核心/内存/网络I/O的精确配置,以非特权模式运行容器进程(容器内的根进程!=主机中的根进程),默认情况下,Docker在特权模式下工作,直到现在,Docker 1.10才实现非特权模式,但您需要检查(或者重写)您的Dockerfile,因为许多事情在非特权模式下不能工作。
LXD和Docker是不同的东西。LXD在容器中为您提供了一个“完整的OS”,您可以使用在VM中工作的任何部署工具在LXD中部署应用程序。有了Docker,您的应用程序就在容器中,您需要不同的工具来在Docker中部署应用程序,并为性能做度量。Docker被设计为在各种操作系统平台上运行,比如Windows。LXD/LXC只能在Linux上运行:这就是Docker不再将LXC作为其堆栈的一部分的原因。
为什么只有在使用主线内核特性(命名空间和cgroup )时才能在ubuntu中使用?
如果需要的话,LXD可以从Canonical获得商业支持,但是您可以在Centos 7、ArchLinux (有内核补丁)检查https://github.com/lxc/lxd中构建LXD。Gentoo现在支持LXD,现在是https://wiki.gentoo.org/wiki/LXD。
发布于 2015-07-20 22:03:05
LXD基于liblxc,它的目的是通过添加功能来控制一些lxc,比如快照或实时迁移。LXD链接到LXC,它们以操作系统为中心。
Docker更多地以应用程序为中心,最初基于LXC,但现在独立于LXC,它可以使用openvz或其他任何东西。Docker只关注带有库和依赖关系的应用程序,而不是OS。
有关更多信息,请看这个:https://www.flockport.com/lxc-vs-lxd-vs-docker-making-sense-of-the-rapidly-evolving-container-ecosystem/
致以问候。
https://stackoverflow.com/questions/30430526
复制相似问题