"lxd" 与 lxc/docker 有何不同?
How is "lxd" different from lxc/docker?
问题
- lxd 如何在容器内提供完整的操作系统功能,而不仅仅是单个进程?
- 它与 lxc/docker + 包装器有何不同?
- 是不是类似于用docker+supervisor/wrapper脚本启动的容器,在一个容器中包含多个进程?
换句话说:
- 我可以用 lxd 做哪些我不能用 lxc 和 docker 上的一些包装器做的事情?
- 如果他们正在使用主线内核功能(命名空间和 cgroup),为什么它仅在 ubuntu 中可用?
LXD
基于 liblxc
,其目的是通过添加功能(如快照或实时迁移)来控制某些 lxc
。 LXD
链接到 LXC
,它们以 OS 为中心。
Docker
更以应用为中心,一开始基于 LXC
但现在独立于 LXC
,它可以使用 openvz
或其他任何东西。 Docker
只关注带lib和依赖的应用,不关注OS。
此致。
How does lxd provide Full operating system functionality within containers, not just single processes?
容器是隔离的 Linux 系统在 Linux 内核中使用 cgroups 功能限制 cpu/memory/network/etc,无需启动完整的虚拟机。
LXD 使用 liblxc(基于 LXC)提供的功能,由此产生完整的 OS 功能。
How is it different from lxc/docker + wrappers?
LXD 使用 LXC 的 liblxc。 Docker 更专注于应用程序,只有容器内应用程序的主要进程(现在默认使用 libcontainer,Docker 为此首先使用了 liblxc)
Is it similar to a container that is launched with docker + supervisor/wrapper
script to contain multiple processes in one container?
类似的东西。 LXD和Docker的区别在于Docker是应用容器,LXD是系统容器。 LXD 使用 upstart/systemd 就像容器内的主进程一样,默认情况下已准备好成为一个完整的 VM 环境,使用率非常低 memory/cpu。是的,您可以使用 supervisorctl/runit 构建您的 docker,但您需要 手动 此过程。您可以在 http://phusion.github.io/baseimage-docker/ 中查看如何在容器内执行类似操作。
What can I do with lxd that I cannot do with some wrappers over lxc and docker ?
实时迁移容器,像使用完整的虚拟机一样使用您的容器,精确配置专用 cpu cores/memory/network I/O 用于您的容器,运行 您的容器非特权模式下的进程(容器内的根进程!=主机中的根进程)默认情况下 Docker 在特权模式下工作,只有现在 Docker 1.10 他们实现非特权模式但你需要审查(和也许重写)你的 Docker 文件,因为很多东西在非特权模式下无法工作。
LXD 和 Docker 是不同的东西。 LXD 在容器中为您提供“完整 OS”,您可以使用任何可在 VM 中运行的部署工具在 LXD 中部署应用程序。使用 Docker,您的应用程序位于容器内,您需要不同的工具来在 Docker 中部署应用程序并执行性能指标。 Docker 旨在 运行 在各种 OS 平台上,例如 Windows。 LXD/LXC 只能在 Linux 上 运行:这就是 Docker 不再使用 LXC 作为其堆栈的一部分的原因。
Why is it available only in ubuntu if they are making use of mainline kernel features (namespaces and cgroup )?
如果需要,LXD 有来自 Canonical 的商业支持,但您可以在 Centos 7 中构建 LXD,ArchLinux(已修补内核)检查 https://github.com/lxc/lxd. Gentoo supports LXD now https://wiki.gentoo.org/wiki/LXD.
LXD 与 LXC 结合使用,并非旨在替代或取代 LXC。相反,它旨在通过添加支持 REST API 的后端守护进程和通过 REST API.
LXD 更像是 docker 主机。
问题
- lxd 如何在容器内提供完整的操作系统功能,而不仅仅是单个进程?
- 它与 lxc/docker + 包装器有何不同?
- 是不是类似于用docker+supervisor/wrapper脚本启动的容器,在一个容器中包含多个进程?
换句话说:
- 我可以用 lxd 做哪些我不能用 lxc 和 docker 上的一些包装器做的事情?
- 如果他们正在使用主线内核功能(命名空间和 cgroup),为什么它仅在 ubuntu 中可用?
LXD
基于 liblxc
,其目的是通过添加功能(如快照或实时迁移)来控制某些 lxc
。 LXD
链接到 LXC
,它们以 OS 为中心。
Docker
更以应用为中心,一开始基于 LXC
但现在独立于 LXC
,它可以使用 openvz
或其他任何东西。 Docker
只关注带lib和依赖的应用,不关注OS。
此致。
How does lxd provide Full operating system functionality within containers, not just single processes?
容器是隔离的 Linux 系统在 Linux 内核中使用 cgroups 功能限制 cpu/memory/network/etc,无需启动完整的虚拟机。
LXD 使用 liblxc(基于 LXC)提供的功能,由此产生完整的 OS 功能。
How is it different from lxc/docker + wrappers?
LXD 使用 LXC 的 liblxc。 Docker 更专注于应用程序,只有容器内应用程序的主要进程(现在默认使用 libcontainer,Docker 为此首先使用了 liblxc)
Is it similar to a container that is launched with docker + supervisor/wrapper script to contain multiple processes in one container?
类似的东西。 LXD和Docker的区别在于Docker是应用容器,LXD是系统容器。 LXD 使用 upstart/systemd 就像容器内的主进程一样,默认情况下已准备好成为一个完整的 VM 环境,使用率非常低 memory/cpu。是的,您可以使用 supervisorctl/runit 构建您的 docker,但您需要 手动 此过程。您可以在 http://phusion.github.io/baseimage-docker/ 中查看如何在容器内执行类似操作。
What can I do with lxd that I cannot do with some wrappers over lxc and docker ?
实时迁移容器,像使用完整的虚拟机一样使用您的容器,精确配置专用 cpu cores/memory/network I/O 用于您的容器,运行 您的容器非特权模式下的进程(容器内的根进程!=主机中的根进程)默认情况下 Docker 在特权模式下工作,只有现在 Docker 1.10 他们实现非特权模式但你需要审查(和也许重写)你的 Docker 文件,因为很多东西在非特权模式下无法工作。
LXD 和 Docker 是不同的东西。 LXD 在容器中为您提供“完整 OS”,您可以使用任何可在 VM 中运行的部署工具在 LXD 中部署应用程序。使用 Docker,您的应用程序位于容器内,您需要不同的工具来在 Docker 中部署应用程序并执行性能指标。 Docker 旨在 运行 在各种 OS 平台上,例如 Windows。 LXD/LXC 只能在 Linux 上 运行:这就是 Docker 不再使用 LXC 作为其堆栈的一部分的原因。
Why is it available only in ubuntu if they are making use of mainline kernel features (namespaces and cgroup )?
如果需要,LXD 有来自 Canonical 的商业支持,但您可以在 Centos 7 中构建 LXD,ArchLinux(已修补内核)检查 https://github.com/lxc/lxd. Gentoo supports LXD now https://wiki.gentoo.org/wiki/LXD.
LXD 与 LXC 结合使用,并非旨在替代或取代 LXC。相反,它旨在通过添加支持 REST API 的后端守护进程和通过 REST API.
LXD 更像是 docker 主机。