【发布时间】:2018-06-13 18:42:13
【问题描述】:
我正在尝试学习有关容器的基础知识(在本例中为 Docker)。据我从 Docker 文档和一些阅读材料中了解到,Docker 基本上通过使用 runc(之前使用 LXC)运行容器来提供隔离。无论哪种方式,它都使用与主机相同的内核。因此,容器镜像需要与主机内核兼容。我发现这与chroot 所做的非常相似。有人可以向我解释使用 Docker 而不是 chroot 的任何区别和/或优势吗? (除了 Docker 作为包装提供的附加功能、docker-hub 以及 Docker 提供的所有不错的功能)
【问题讨论】:
-
重点(re:内核命名空间隔离)已经在“Docker 与 X 有何不同?”中得到了解答。问题,即使我们还没有专门针对 chroot 的问题。
-
我认为有这个特定的问题很好,因为 chroot 是 Linux AFAIK 中的“第一个”隔离解决方案。这是第一个想到的问题,因为 chroot 也共享主机内核。
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
-
在考虑路径和打包的不同之处以及对“Chroot vs. Docker”的安全影响时,我实际上发现了这个问题。这些绝对是基本问题。因此,在请求基础设施同事为他们配置主机之前,开发人员可能会向自己提出这个问题似乎是一个公平的问题。确实,我觉得这个问题写得很好,值得一票。