Chroot vs Docker

时间:2017-09-27 14:20:47

标签: linux docker chroot

我试图学习有关容器的基础知识(本例中为Docker)。据我从Docker doc和几个读数中学习,Docker基本上通过使用runc运行容器来提供隔离(以前使用LXC)。它使用与主机相同的内核的方式。因此,容器映像需要与主​​机内核兼容。我发现这与chroot的作用非常相似。有人可以向我解释使用Docker而不是chroot的任何差异和/或优势吗? (除了Docker提供的附件包装,docker-hub以及Docker提供的所有优秀功能)

1 个答案:

答案 0 :(得分:26)

Docker允许通过命名空间隔离多个级别的进程:

  • mnt命名空间提供了一个根文件系统(这个可以与我猜的chroot相比)
  • pid命名空间,因此进程只能看到自己及其子级
  • 允许容器拥有其专用网络堆栈的网络命名空间
  • 用户名称空间(非常新),允许主机上的非root用户与容器内的root用户进行映射
  • uts提供专用主机名
  • ipc提供专用共享内存

所有这些都增加了比chroot提供的更多隔离