- 什么是容器?
容器是把运行环境、应用程序、配置文件打包起来,可以到处运行,解决开发环境和生产环境不匹配的问题。
2. 容器和虚拟机相比有什么优势?
它的主要优势,概括起来,就是小轻松;劣势:相比虚拟机隔离性差
- 体量小,容器镜像一般都是MB级别,相比虚拟机GB级别小很多;
- 启动快,容器启动基本是秒级别,而虚拟机是分钟级别;
- 松耦合,一次编译到处运行,可以运行到任意发行的linux机器上;
- 性能,没有hypervisor消耗,性能相对较好;
3. Docker容器的底层技术
容器从本质上来讲它就是操作系统中的一个进程,操作系统中的进程是如何进行资源隔离和限制呢?
Docker 是通过 namespace 实现资源隔离,通过cgroup 实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作。
Linux 的 namespaces 技术为新创建的进程隔离了文件系统、网络、进程等资源。
Control Groups(CGroups)技术就能够隔离宿主机上的物理资源,比如 CPU、内存、IO 或者网络带宽等。