gpt4 book ai didi

docker - docker在Linux机器上运行时是否使用虚拟化解决方案?

转载 作者:行者123 更新时间:2023-12-02 21:09:13 24 4
gpt4 key购买 nike

在Windows上使用Docker时,这些容器在Windows上的hyper-v linux VM中并行运行。
因此,在ubuntu中启动容器时,是否需要任何虚拟化解决方案(例如hyper-v),或者这些容器只是作为ubuntu中的进程运行?

我的第一句话的来源- How docker desktop runs linux containers on Windows machine

最佳答案

首先,为什么要使用hyper-v?

在Windows上使用hyper-v VM的docker的原因仅在于:对于linux容器,它必须共享主机的linux内核。但是在Windows上,我们没有Linux内核,因此docker为您设置了hyper-v VM,然后让您的容器共享内核。

第二,为什么不在Linux上使用VM?

但是在Linux上,主机已经有一个Linux内核,因此容器可以共享该内核而无需使用任何VM。

实际上,从下图可以看到,当您启动一个新容器时,它将自动新建一个进程containerd-shim,它将作为一个进程运行,您可以使用ps aux | grep docker在Linux主机上对其进行查看。

enter image description here

,最后,什么是容器?

Docker使用一种称为 namespace 的技术来提供称为容器的隔离工作区。运行容器时,Docker会为该容器创建一组 namespace ,然后容器中的每个进程都将在单独的 namespace 中运行。参见official docementation

关于docker - docker在Linux机器上运行时是否使用虚拟化解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55989248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com