http://www.floydhilton.com/docker/2017/03/31/Docker-ContainerHost-vs-ContainerOS-Linux-Windows.html

定义

  • 容器主机(Container Host):也称为 Host OS。 Host OS 是运行 Docker 客户端和 Docker 守护程序的操作系统。 对于 Linux 和非 Hyper-V 容器,Host OS 与运行的 Docker 容器共享其内核。 对于 Hyper-V,每个容器都有自己的 Hyper-V 内核。
  • Container OS:也称为 Base OS。 Base OS 是指包含操作系统的映像,例如 Ubuntu、CentOS 或 windowsservercore。 通常,您会在 Base OS 映像之上构建自己的映像,以便您可以利用操作系统的某些部分。
  • 操作系统内核(Operating System Kernel):内核管理较低级别的功能,例如内存管理、文件系统、网络和进程调度。

image.png

  • The Host OS is Ubuntu.
  • The Docker Client and the Docker Daemon (together called the Docker Engine) are running on the Host OS.
  • Each container shares the Host OS kernel.
  • CentOS and BusyBox are Linux Base OS images.
  • The “No OS” container demonstrates that you do not NEED a base OS to run a container in Linux. You can create a Docker file that has a base image of scratch and then runs a binary that uses the kernel directly.

image.png

  • The Host OS is Windows 10 or Windows Server.
  • Each container shares the Host OS kernel.
  • All windows containers require a Base OS of either nanoserver or windowsservercore.

image.png

  • The Host OS is Windows 10 or Windows Server.
  • Each container is hosted in its own light weight Hyper-V VM.
  • Each container uses the kernel inside the Hyper-V VM which provides an extra layer of separation between containers.
  • All windows containers require a Base OS of either nanoserver or windowsservercore.