Alpine Linux 是 Unikernel 的实现吗?
Is Alpine Linux an implementation of a Unikernel?
我已经阅读了很多关于 Docker 容器和 Unikernel 以及如何 运行 使用我自己的应用程序构建轻量级环境的资料。
我明白 Linux 容器和 Unikernel 是不同的东西,因为第一个是与主机 OS 共享资源的内核特性(例如命名空间、cgroups 等)的实现,以及后来是围绕应用程序构建的独立专业库操作系统。
但后来我在 Dockerhub 中偶然发现了 Alpine linux 派生的图像。它们非常轻巧且非常专业。但是它们 运行 具有相同的 LXC/runc 特征吗?
是否可以使用 Docker 在管理程序实现下 运行 unikernel?
Alpine 镜像和其他镜像有什么区别?
我对 unikernels 不是很熟悉,但我可以尝试回答你的最后一个问题:
大多数Docker图像都是基于Ubuntu,主要区别在于图像的大小,而Ubuntu图像有183MB,Alpine只有4.5MB .
因此,Alpine 具有较低的攻击面,并且专为安全性而设计,请看这里:http://www.alpinelinux.org/about/
Alpine Linux was designed with security in mind
Alpine Linux 图片 运行 我认为具有相同的 LXC/runc 特征。
Alpine 不是 unikernel。这是一个 linux 发行版,我不同意它在设计时考虑到了安全性。
它有多个问题(包括没有 root 密码):
Unikernel 的特点是它们在设计上是单一进程。这意味着您实际上不能 fork/exec 一个新程序。高山 linux 不符合该规则。
进一步 - Docker 不是管理程序。它 可以 在 osx 上使用 HVF 或在 linux 上使用 kvm 之类的东西,但在大多数情况下它不会。为什么?因为大多数 docker 被推送到生产环境的容器最终都生活在 public 云中的 linux 虚拟机上。 运行 现有虚拟机之上的另一个虚拟机具有严重的性能税,因此很少有人出于选择这样做。
另一方面,Unikernel 可以部署为它们自己的 AMI,没有底层 linux。这也将它们与小型 linux 发行版(例如 Alpine)区分开来。
还有很多差异(比如缺少用户,或者缺少 shell,等等)但总的来说,Alpine 不是 unikernel,没有任何优势一个 unikernel。
我已经阅读了很多关于 Docker 容器和 Unikernel 以及如何 运行 使用我自己的应用程序构建轻量级环境的资料。
我明白 Linux 容器和 Unikernel 是不同的东西,因为第一个是与主机 OS 共享资源的内核特性(例如命名空间、cgroups 等)的实现,以及后来是围绕应用程序构建的独立专业库操作系统。
但后来我在 Dockerhub 中偶然发现了 Alpine linux 派生的图像。它们非常轻巧且非常专业。但是它们 运行 具有相同的 LXC/runc 特征吗?
是否可以使用 Docker 在管理程序实现下 运行 unikernel?
Alpine 镜像和其他镜像有什么区别?
我对 unikernels 不是很熟悉,但我可以尝试回答你的最后一个问题:
大多数Docker图像都是基于Ubuntu,主要区别在于图像的大小,而Ubuntu图像有183MB,Alpine只有4.5MB .
因此,Alpine 具有较低的攻击面,并且专为安全性而设计,请看这里:http://www.alpinelinux.org/about/
Alpine Linux was designed with security in mind
Alpine Linux 图片 运行 我认为具有相同的 LXC/runc 特征。
Alpine 不是 unikernel。这是一个 linux 发行版,我不同意它在设计时考虑到了安全性。
它有多个问题(包括没有 root 密码):
Unikernel 的特点是它们在设计上是单一进程。这意味着您实际上不能 fork/exec 一个新程序。高山 linux 不符合该规则。
进一步 - Docker 不是管理程序。它 可以 在 osx 上使用 HVF 或在 linux 上使用 kvm 之类的东西,但在大多数情况下它不会。为什么?因为大多数 docker 被推送到生产环境的容器最终都生活在 public 云中的 linux 虚拟机上。 运行 现有虚拟机之上的另一个虚拟机具有严重的性能税,因此很少有人出于选择这样做。
另一方面,Unikernel 可以部署为它们自己的 AMI,没有底层 linux。这也将它们与小型 linux 发行版(例如 Alpine)区分开来。
还有很多差异(比如缺少用户,或者缺少 shell,等等)但总的来说,Alpine 不是 unikernel,没有任何优势一个 unikernel。