Day4-Container?

Container并不是轻量的VM,Container正确的来说是作业系统(OS)的"特殊进程",我们用GCP开台Ubuntu 16.04安装Docker-CE来看看

sudo apt-get update
sudo apt-get -y install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
   
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io

接着用 ps -A | grep -n docker 看一下这台VM,只有dockerd就是docker的守护进程docker daemon,docker daemon负责通过Docker Server模块接受Docker Client的请求,并在Engine中处理请求,然後根据请求类型,创建出指定的container
https://ithelp.ithome.com.tw/upload/images/20210910/20098886JjcrVA54zg.png

接着我们开一台容器 ubuntu:16.04

sudo docker run -it ubuntu:16.04 bash

这时再回VM看一下一样使用 ps -A | grep -n docker
https://ithelp.ithome.com.tw/upload/images/20210910/20098886RJKv5NFS8K.png

这时多了个进程名叫docker他的PID是5270,接着再进去ubuntu的docker容器看他有没有省去OS

图中可以看出来OS的file与lib都是在的,容器是有OS的file与lib,它所没有的是OS的Kernel process,为了证明这件事我们在容器里下ps -A
https://ithelp.ithome.com.tw/upload/images/20210910/20098886cKowPoWdfm.png

会发现只有两个进程一个是ps一个是我们在前面docker run中下的bash,并没系统进程在其中,我们回到VM下ps -A | wc -l计算进程数目
https://ithelp.ithome.com.tw/upload/images/20210910/20098886voBC2k5imr.png

你会发现VM执行了110个进程,因为它是VM需要跑OS Kernel process,而Docker不用,有些喜欢追根究底的朋友可能会问docker没有跑OS Kernel process也能Run进程那我装OS要干嘛?事实上底层还是有OS的假如你的Docker安装在VM上Docker就是跑VM的Guest OS,装在物理机上Docker就是跑物理机的Host OS,这里来了个问题?我们能在Windows底下Run Linux VM那能不能在Windows底下Run Linux Container?不能!因为底层的OS Kernel是Windows Kernel process,同理我们也没法在ubuntu 8.04上跑ubuntu 20.04的Container因为核心版本太旧了。


<<:  [Day-11] R语言 - K - mode 实作 ( K - mode in R.Studio)

>>:  Day10 有图有真相

Day.2 什麽是时间、空间复杂度?

时间复杂度(Time complexity) 我们要怎麽知道一个程序要跑多久? 正常来说要真的执行下...

Day 26 bert 文字情感分类-5

训练时间约半个小时,但 colab 的速度并不稳定,以前也有同一笔资料训练4个小时的状况。 根据20...

[Day10]关於创世区块block#0

什麽是创世区块?在第二天{什麽是区块链}一文中有提到中聪在2009年时,创建了比特币网路并开发了第...

不只懂 Vue 语法:试解释嵌套路由与嵌套命名视图的概念?

问题回答 嵌套路由是指在一个 router-view 里包 router-view,像是在一个画框里...

[Lesson3] BMI

今天要来做一个计算BMI的简易App! activity_main.xml: 使用LinearLay...