1.docker使用go语言开发,基于linux内核的cgroup,namespace和OverlayFS类的Union FS等技术,对进程进行隔离,属于操作系统层面的虚拟化技术,自1.11后,docker实现就基于runC和containerd。
containerd:是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
runC:是一个linux命令行工具,用于根据OCI容器运行时。
2.docker在容器的基础上,进行了进一步的封装,从文件系统,网络互联到进程隔离等等,极大到简化了容器到创建和维护,使得docker技术比虚拟机更轻便,快捷。
3.虚拟机和docker的区别
传统的虚拟机虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用的进程。
容器直接运行在宿主的内核中,容器内没有自己的内核,也没有虚拟自己的硬件,所以比传统的虚拟机更加轻便。
4.docker的优势
(1)更高效的利用系统资源
(2)更快捷的启动时间
(3)一致的运行环境
(4)持续交付和部署
(5)更轻松的迁移
(6)更轻松的维护和拓展