docker提供了一种应用封装技术,和浅层的应用隔离技术,最近几年很是流行。

 

在我最开始使用docker的过程中,有一种怀疑,觉得docker启动容器后,容器运行起来后,使用的内核是镜像中提供的linux内核。不然,无法解释大家都追求使用新的内核镜像的现象,既要使用新的依赖库,例如,glibc、python等,也要使用新的内核特性。

但,随着对docker逐渐的了解,ps\pstree的查验、分析,和看到docker官网上对比容器和虚拟机的图,我突然洞见,明白了:docker容器运行时并不提供内核的资源,更多的是业务APP运行的环境依赖和资源上的隔离,其内核其实还是使用宿主机的内核

或者,换一种说法,假如您的业务APP依赖某种内核提供的接口,那么就需要详细的检查和确认宿主机提供的基础服务,或也可以考虑虚拟机的部署方式了。。。

docker容器与虚拟机区别https://www.docker.com/resources/what-container/

支持证据V2.0


如果你想让容器在遇到崩溃异常时,产生coredump文件,那么就需要在主机上设置ulimit环境变量和core_pattern内核参数;且core_pattern指定的路径,容器也需要能够访问到。

从主机和容器产生coredump的设置上来看,主机和容器所使用的内核也是共同的,也就在另外一个侧面,提供了本文观点的例证!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐