http://www.floydhilton.com/docker/2017/03/31/Docker-ContainerHost-vs-ContainerOS-Linux-Windows.html
在docker容器里,查看操作系统:
cat /etc/issue
查看宿主机的操作系统
lsb_release -a
定义:
容器主机(Container Host):也称为主机操作系统(Host OS)。主机操作系统是Docker客户端和Docker守护进程运行的操作系统。对于Linux和非Hyper-V容器,主机操作系统与运行Docker容器共享其内核。对于Hyper-V,每个容器都有自己的Hyper-V内核。
容器操作系统(Container OS):也称为基础操作系统(Base OS)。基础操作系统是指包含操作系统(如Ubuntu、CentOS或windowsservercore)的镜像。通常,您会在基础操作系统镜像的基础上构建自己的镜像,以便可以使用操作系统的某些部分。请注意,windows容器需要基础操作系统,而Linux容器则不需要。
操作系统内核(Operating System Kernel):内核管理内存管理、文件系统、网络、进程调度等底层功能。
在上面的例子中
- 主机操作系统是Ubuntu。
- Docker客户端和Docker守护进程(统称为Docker引擎)在主机操作系统上运行。
- 每个容器共享主机操作系统内核。
- CentOS和BusyBox是Linux基础操作系统映像。
- “No-OS”容器演示了在Linux中运行容器不需要基础操作系统。您可以创建一个Docker文件,它的基础镜像scratch,然后运行一个直接使用内核的二进制文件。
在上面的例子中 - 主机操作系统是Windows 10或Windows Server。
- 每个容器共享主机操作系统内核。
- 所有windows容器都需要nanoserver或windowsservercore的基础操作系统。
在上面的例子中 - 主机操作系统是Windows 10或Windows Server。
- 每个容器都托管在自己的轻量级Hyper-V虚拟机中。
- 每个容器都使用Hyper-V VM中的内核,该内核在容器之间提供了一个额外的隔离层。
- 所有windows容器都需要nanoserver或windowsservercore的基础操作系统。