docker
是依赖 Linux
环境的。win
可以跑 docker
是因为前有 hyper-v
,后有 wsl
但是 mac
为什么可以?虽然和 Linux
都是 Unix-like
,但是具体的 api
皆是千差万别。
从这篇文章 —— 如何在Docker上运行* BSD操作系统?看到这段话:
Docker实际上并没有运行完整的操作系统。所以它不能运行与其主机操作系统使用的内核不同的内核。在Mac上,Docker实际上在虚拟化的Linux环境中运行,所以它的主机环境是Linux。此外,据我所知,Docker依赖Linux特有的功能来完成其基本操作。所以无法使用Mac作为其主机环境来运行它。
所有这些意味着无法将真正的BSD作为Docker镜像运行,这就是为什么Docker没有BSD镜像的原因。
我有一个疑问,这个“Docker实际上在虚拟化的Linux环境中运行”中的 “Linux环境” 是哪里来的?
- 是 docker 公司搞得
- 是 apple 公司搞得
请问是哪个?
这个层是以什么形式工作的?类似Rosetta2转义运行?还是什么类似 vmware那种虚拟机什么的?
谁有关于 mac 上为什么可以跑 docker 的更多资料可以供阅读吗?
是的,mac 上跑 docker 的时候,会出现一个虚拟机进程
和Windows一样,底层使用的虚拟机跑的Linux。Windows有虚拟机Hyper-V,MacOS也有虚拟机框架 Apple Hypervisor framework (这玩意你可以类比Linux下的KVM,差不多)
这个是在Docker的文档中提到的: https://docs.docker.com/deskt...