3 ms·
So when I run “uname -m” on Mac it says “arm64”, but running it in a docker container on the Mac it says “aarch64”. Doesn’t seem like everybody is in agreement.
by zeroimpl 4y ago
So when I run “uname -m” on Mac it says “arm64”, but running it in a docker container on the Mac it says “aarch64”. Doesn’t seem like everybody is in agreement.
- ndesaulniers 4y agoThat was the first thing I hit when compiling the Linux kernel on Macos!
- yjftsjthsd-h 4y agoIt's traditional; before that we had amd64 AKA x86_64 AKA x64
- jakogut 4y agoDocker on other-than-Linux platforms runs in a Linux virtual machine, because there's no containers without Linux. Running uname in a container then reports what you would see in Linux, not what the host reports.
- fathyb 4y agoI was surprised to find out that Docker now installs as a VM by default even on Linux, unless you choose to install the Docker Engine manually. https://docs.docker.com/get-docker/ https://docs.docker.com/get-docker/
- jakogut 4y agoInteresting, that's also news to me. I wonder what the purpose for that is? I suppose it's possible to control the kernel version and cgroup configuration more easily that way, but I imagine networking and filesystem access becomes more complicated.
- shandor 4y agoThey go into the details quite nicely in their documentation [1]. A more cynical take would be to wonder if it has anything to do with their steps trying to monetize Docker Desktop. This move puts the same stack in use with Linux, maybe giving them monetization on Linux as well. (Not that there’s anything wrong with that. You can still use the Docker Engine freely on Linux if you want. ) [1] https://docs.docker.com/desktop/faqs/linuxfaqs/#why-does-docker-desktop-for-linux-run-a-vm https://docs.docker.com/desktop/faqs/linuxfaqs/#why-does-doc...
- efrecon 4y agoThis is Docker Desktop. They have an official explanation for it: https://docs.docker.com/desktop/faqs/linuxfaqs/#why-does-docker-desktop-for-linux-run-a-vm https://docs.docker.com/desktop/faqs/linuxfaqs/#why-does-doc.... You can still install the docker engine directly if you want.
- politelemon 4y agoNo that's not correct. Docker runs on Linux. Docker _Desktop_ is an indirection tool, a glorified network stitcher, that runs VMs to make it appear like you are running Docker on other systems (Win/Mac). Docker _Desktop_ installs a VM by default, likely in a bid for consistency across platforms. On Linux you should not be installing Docker Desktop, only Docker Engine.
- pjmlp 4y agoWindows has containers, and Docker runs natively on them. To fit into the ecosystem, Windows has traditionally exposed them via Docker CLI endpoints. This is changing now with kubernetes moving away from Docker as dependency, and other tooling is becoming available to manage Windows containers.
- jakogut 4y agoWindows has containers? How does that work? I know Windows has WSL and Docker Desktop, but they both run a Linux kernel in a hardware accelerated virtual machine. I wouldn't call that native.
- pjmlp 4y agoContainers isn't a Linux thing, in fact the first time I used containers in production, was in HP-UX in 1999, with HP-UX Vaults. In the case of Windows containers, WSL is only there to keep Docker management tools happy, and for Linux containers Windows containers infrastructure is based on Windows Jobs, and they are exclusive, either you run Docker in Linux mode, or you run it talking to Windows containers and this is on way out since containerd no longer needs it. https://learn.microsoft.com/en-us/virtualization/windowscontainers/ https://learn.microsoft.com/en-us/virtualization/windowscont... https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/containerd https://learn.microsoft.com/en-us/virtualization/windowscont...
- zeroimpl 4y agoMy point is mostly that the article implies Apple, Microsoft and Linux (or at least Linus) agree on using the term arm64, but the agreement doesn't seem to be too deep given that uname reports different values. Btw in updating a Docker image to support multi-arch, I sometimes had to download binaries named with arm64 in the name, and sometimes with aarch64 in the name. But the previous version had the same issue with amd64 vs x86_64, so it's not a new issue.