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
接着我们开一台容器 ubuntu:16.04
sudo docker run -it ubuntu:16.04 bash
这时再回VM看一下一样使用 ps -A | grep -n docker
这时多了个进程名叫docker他的PID是5270,接着再进去ubuntu的docker容器看他有没有省去OS
图中可以看出来OS的file与lib都是在的,容器是有OS的file与lib,它所没有的是OS的Kernel process,为了证明这件事我们在容器里下ps -A
会发现只有两个进程一个是ps一个是我们在前面docker run中下的bash,并没系统进程在其中,我们回到VM下ps -A | wc -l计算进程数目
你会发现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)
时间复杂度(Time complexity) 我们要怎麽知道一个程序要跑多久? 正常来说要真的执行下...
训练时间约半个小时,但 colab 的速度并不稳定,以前也有同一笔资料训练4个小时的状况。 根据20...
什麽是创世区块?在第二天{什麽是区块链}一文中有提到中聪在2009年时,创建了比特币网路并开发了第...
问题回答 嵌套路由是指在一个 router-view 里包 router-view,像是在一个画框里...
今天要来做一个计算BMI的简易App! activity_main.xml: 使用LinearLay...