5 ms·
I hate how the Docker team called it native. Docker for Mac/Windows still run in a hypervisor because so much of Docker is specific to Linux/cgroups. There was
by djsumdog 7y ago
I hate how the Docker team called it native. Docker for Mac/Windows still run in a hypervisor because so much of Docker is specific to Linux/cgroups. There was a FreeBSD port of Docker that attempted to implement a lot of the Docker API using zfs+jails but it went unmaintained and was never ported to the newer modular Docker implementation.
You're always going to get that performance hit with the hypervisor layer there.
- charles_f 7y agoDocker for Windows is coming to use the WSL2, beta is already out.
- sigjuice 7y agoCalling it “Docker for Windows” is still highly inappropriate and misleading. It is super confusing.
- lojack 7y agoWSL 2 itself uses a hypervisor though, so this is sort of a moot point.
- addicted 7y agoIs this correct? I thought the headline feature of WSL2 was that unlike WSL it didn't use the hypervisor. Edit: I looked it up. WSL2 continues to use a VM. https://devblogs.microsoft.com/commandline/announcing-wsl-2/ https://devblogs.microsoft.com/commandline/announcing-wsl-2/
- skissane 7y ago> Is this correct? I thought the headline feature of WSL2 was that unlike WSL it didn't use the hypervisor. No, the headline feature of WSL2 is it uses a real Linux kernel under a hypervisor, as opposed to WSL1's approach of a kernel driver running inside the NT kernel which partially emulates the Linux syscall API. > Edit: I looked it up. WSL2 continues to use a VM. More accurately, WSL2 starts using a VM, whereas WSL1 didn't. WSL2 runs the Linux kernel inside a VM. WSL1 runs Linux processes under the NT kernel (albeit as a special type of lightweight process called a picoprocess), with an emulation layer to translate Linux syscalls into NT kernel calls.
- Mister_Snuggles 7y agoYou've got it backwards. WSL was a translation layer between Linux and Windows, WSL2 uses Hyper-V (I believe with some special sauce to handle integration).
- teppifk 7y agoWSL2 doesn't continue to use a VM, it is new in that it uses a VM. WSL1 did not use a VM, it directly interfaced with the NT executive.
- teraflop 7y ago> Docker for Mac/Windows still run in a hypervisor because so much of Docker is specific to Linux/cgroups. As I understand it, that what you describe is true of Docker for Mac, but not Docker for Windows which uses Windows' built-in container support (analogous to cgroups). https://stefanscherer.github.io/how-to-run-lightweight-windows-containers-on-windows-10/ https://stefanscherer.github.io/how-to-run-lightweight-windo...
- smudgymcscmudge 7y agoI preferred the old mac solution where they didn’t try to hide the vm from you. It was much more straightforward.
- jsmeaton 7y agoI personally disagree. I hated the whole docker-machine rubbish and exporting of the env vars. That doesn't make the performance problems of docker-for-mac any less nasty though.