【Docker】docker是什么操作系统?

在看了下面的图之后, 感觉docker就是运行在宿主机操作系统上的一个进程, 那么在docker中直接装了mysql, python之后, 这些软件是基于什么操作系统的? 是基于宿主机的系统? 但是貌似在windows上随便装一个redis镜像, 发现里面也不是宿主机的windows操作系统啊?
所以
问题1: docker本身是什么操作系统, 如果下载一个一个docker的redis镜像, 进去之后好像也能执行一些linux命令?
问题2: docker上装了一个比如centos操作系统之后, 那就是在宿主机的系统上, 运行了一个docker进程, 里面运行着centos系统, 这样理解对?

【Docker】docker是什么操作系统?

回答

问题1: docker本身是什么操作系统, 如果下载一个一个docker的redis镜像, 进去之后好像也能执行一些linux命令?

docker不是操作系统。你的那张图2写的很明白了,只有一个HOST OS。也就是说所有docker容器都是使用的宿主机的OS。这一点和Virtual Machine会虚拟化出Guest完全不同。你可以试一下,假设你的宿主机是Ubuntu 16.04的,内核版本是4.9。不管你运行哪个版本的ubuntu/centOS容器,看内核版本都是4.9。

共用Host OS是docker的特点!共用Host OS是docker的特点!共用Host OS是docker的特点!

相比Virtual Machine的虚拟化,Docker更轻,更小(毕竟不用再启动一套内核了嘛)

但当然也有限制,比如Virtual Machine可以 Windown on Linux或者相反,而Docker是不行的。

问题2: docker上装了一个比如centos操作系统之后, 那就是在宿主机的系统上, 运行了一个docker进程,
里面运行着centos系统, 这样理解对?

不对,使用的内核始终是HOST OS。docker daemon进程在宿主机上存在且唯一。你说的应该是启动CentOS Container,它会启动一个进程(对HOST来说是一个普通进程,对Container来说是init进程,这一点请查阅PID namespace)

答案1:docker并不是一个操作系统,docker是一个容器,可以把它比喻成虚拟的硬件,在硬件(主机)上安装操作系统,redis的镜像肯定是一个系统装了redis,并不是单单一个redis,可以进入该镜像使用相关命令查看系统信息。
答案2:差不多可以这样理解,docker是一个容器,至于docker是不是单进程的,可以去查更详细的资料或者查看官方文档及源码。

docker 是容器,就跟你电脑一样。装系统的容器

以上是 【Docker】docker是什么操作系统? 的全部内容, 来源链接: utcz.com/a/73597.html

回到顶部