码迷,mamicode.com
首页 > 其他好文 > 详细

I thought i know docker until i saw busybox

时间:2021-05-24 08:29:24      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:答案   box   server   磁盘   接口   一个   docke   lib   until   

  • 都知道虚拟机和docker的区别,虚拟机是每个虚拟机内跑独立的os,os层面隔离。docker是同一个os上,使用linux的namespace机制做资源隔离,为什么我们docker image还需要依赖一个linux的发行版,一般最小是busybox呢,那我的进程跑起来,到底是用我容器内的os还是宿主机的os呢。
  • 第一个问题:镜像里是不是一定要有一个os。答案是不是,我们想想os是啥,os是一个kernel+外围系统,,kernel是负责和各个硬件交互,比如网卡,磁盘等。如果我们的镜像可以直接调kernel的接口,那其实什么都不依赖。
  • 第二个问题:为什么要依赖linux的发行版:我们其实依赖的是这些发行版在kernel之上包装的libary。比如文件系统,不同的操作系统有不同的文件系统,到最底层其实都是调用host上os的kernel的接口。
  • 第三个问题:容器跑起来,到底是依赖容器内的os还是host的os呢。答案是不同的容器是共享host os的kernel的,kernel之上的东西各个容器是独立的。也就是我可以跑一个ubuntu的容器,也可以跑一个centos的容器。
  • 第四个问题:linux host上可以跑windows的容器吗,答案是不行,因为kernel是不同的,但现在docker支持在windows server上跑windows的容器了

I thought i know docker until i saw busybox

标签:答案   box   server   磁盘   接口   一个   docke   lib   until   

原文地址:https://www.cnblogs.com/noooone/p/14766418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!