docker - docker desktop 如何在 Windows 机器上运行 linux 容器

标签 docker containers

我已经在我的 Windows 10 笔记本电脑上安装了 Docker for Windows。现在因为有了这个“Docker for Windows”,我也可以在我的 windows 10 笔记本电脑上运行 Linux 容器。它是如何实现的?我有一些疑问,我在这里遗漏了什么吗?

查看图片以获得更好的可见性
Docker on Windows Machine running Linux container

1) 我的机器是 Windows 10 有 Windows 内核。对?

2) 当我选择运行 Linux 容器的选项时,我认为 Linux VM 运行在我的 Windows 10 机器之上,并且在该之上运行 Linux 容器。那是对的吗?

3) 如果Linux VM 运行在Windows 机器的TOP 上,使用谁的内核? Linux VM 内核还是 Windows 10 内核?

4)然后我们怎么能说容器不包含操作系统,对于Windows,它们正在运行Linux VM。

5) 现在如果我运行第二个容器,它会在已经运行的 Linux VM 之上运行,还是会再次启动新的 Linux VM?我认为它会在同一个正在运行的 linux VM 上运行,但要求不会有任何混淆。

6) 如果 Linux VM 在 Windows 机器的 TOP 上运行,那么我们是否可以像 Linux VM 的版本等一样控制正在运行的 Linux VM,或者它总是相同的,我们无法控制它?

7) 如果 Linux VM 在 Windows 机器上运行,那么 Windows 资源对 Linux VM 不可见,因此对容器不可见?如果它是可见的,那么 Linux VM 如何与 Windows 主机通信?

最佳答案

1) 我的机器是 Windows 10 有 Windows 内核。对?

答:是的。

2) 当我选择运行 Linux 容器的选项时,我认为 Linux VM 运行在我的 Windows 10 机器之上,并且在该之上运行 Linux 容器。那是对的吗?

答:是的。一个名为 mobylinux 的 hyper-v linux 虚拟机将在那里,您可以在 hyper-v 管理器中看到它。

3) 如果Linux VM 运行在Windows 机器的TOP 上,使用谁的内核? Linux VM 内核还是 Windows 10 内核?

- 答:hyper-v vm使用linux内核。

4)然后我们怎么能说容器不包含操作系统,对于Windows,它们正在运行Linux VM。

A:不知道你从哪里得到信息。 docker 镜像只有文件系统,例如ubuntu16.04 文件系统,但没有内核。容器运行时,会使用镜像的文件系统并共享宿主机的内核(也许你的意思是它没有自己的内核,所以你说它没有操作系统?)

5) 现在如果我运行第二个容器,它会在已经运行的 Linux VM 之上运行,还是会再次启动一个新的 Linux VM?我认为它会在同一个正在运行的 linux VM 上运行,但要求不会有任何混淆。

A:是的,它将再次在同一个 linux vm 上运行。

6) 如果 Linux VM 在 Windows 机器的 TOP 上运行,那么我们是否可以像 Linux VM 的版本等那样对正在运行的 Linux VM 进行任何控制,或者它总是相同的并且我们无法控制它?

答:不,看这个discussion ,似乎无法 ssh 到 vm,只是一些解决方法来访问 vm 的文件系统,所以找不到任何方法来更改内核或 linux 发行版。

7) 如果 Linux VM 在 Windows 机器上运行,那么 Windows 资源对 Linux VM 不可见,因此对容器不可见?如果它是可见的,那么 Linux VM 如何与 Windows 主机通信?

A:理论上,你可以将windows文件夹挂载到linux vm,然后容器可以使用linux文件夹和volume。 docker for windows 已经帮您完成了,右键单击任务栏中的图标,您可以看到如下内容,就像图片一样:

enter image description here

关于docker - docker desktop 如何在 Windows 机器上运行 linux 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54264920/

相关文章:

docker中的Oracle xe 11g,在ubuntu上重新启动docker后创建的用户丢失

linux - alpine docker 镜像和busybox docker 镜像有什么区别?

python - 如何在 Windows 主机上从 apache Airflow 使用 DockerOperator

C++ mt19937 总是给出相同的数字,即使在播种时也是如此

html - 更改容器流体内元素的背景颜色

kubernetes - 如何通过fluentd将json日志发送到stackdriver

kubernetes 作业 init 容器

docker - 将Flask应用程序部署到Docker-路由/重定向问题

docker - 在Dockerfile中安装pyspark

docker - 无法访问共享数据量