类虚拟机

可以认为是一种虚拟机,为用户提供便捷、一键式的本来难以配置的各种跨系统、跨生态的运行环境

但是Docker和我们认为的虚拟机(如Vmware、VirtualBox、Hyper-v)等有些许不同,主要表现在:

  • Docker并不需要提供完整的操作系统,只需要精简地按需提供所运行的环境即可(如运行Mysql、运行Tomcat、运行 Yolo 推理的环境)
  • Docker不对硬件进行虚拟化,也就是说每一个Docker环境共享内核,都直接运行在宿主主机的内核中,不像一般的虚拟机虚拟出独立的内核,因此Docker的安全性比一般的虚拟机要低

比起虚拟机,Docker更像沙箱

原理

对于Linux,Docker使用了Linux提供的namespacecgroup技术,为每个程序提供隔离的环境 对于Windows,新版的Docker则是使用了Windows的WSL,其本质上还是利用Hyper-V虚拟化出一个Linux内核,在Linux内核中进一步隔离出多种不同的环境

因此Linux是一步隔离,Windows是一步虚拟、一步隔离,所以似乎Windows的Docker安全性更高?毕竟Hyper-V可是切切实实地提供了硬件虚拟化的独立内核