4 ms·
>However, Rosetta doesn’t translate the following executables: Virtual Machine apps that virtualize x86_64 computer platforms How will this impact docker? Does
by marcinzm 6y ago
>However, Rosetta doesn’t translate the following executables: Virtual Machine apps that virtualize x86_64 computer platforms
How will this impact docker? Does this mean you can't run x86 docker containers on new Apple laptops?
- cloogshicer 6y agoNot sure about the details for how this works, but they specifically mentioned Docker to be supported at the keynote.
- marcinzm 6y agox86 docker or just docker? There's ARM docker containers as well.
- dividedbyzero 6y agoDocker already runs fine on ARM64, like on Raspberry Pis, so there would be no Rosetta translation needed for ARM64 images. If Rosetta could translate binaries in x86/AMD64 images, that would be very helpful indeed. Likewise, will it support CLI programs at all?
- EtienneK 6y agoI would assume you’d only be able to run ARM Docker containers.
- marcinzm 6y agoWhich is less than ideal if you're using x86 servers since you no longer have the same dev containers as production containers.
- EtienneK 6y agoYeah. I predict a sudden increase of ARM servers as well.
- flir 6y agoDo Amazon have an ARM server product?
- alexandrvicente 6y agoYes, https://aws.amazon.com/ec2/graviton/ https://aws.amazon.com/ec2/graviton/
- NovemberWhiskey 6y ago... and it's actually kinda kick-ass - the original A1 instances were fairly disappointing but the M6g is at an extremely aggressive price/performance point.
- dividedbyzero 6y agoAnd maybe even some decent ARM Linux laptops. One may dream...
- cpuguy83 6y agoI don't think people should consider the vm Docker For Mac uses anything close to resembling production as is.
- linux2647 6y agoMy understanding is that the virtualization Apple provides is only for the same architecture as the host OS. In the demos given running Debian, they run uname -a and it reports aarch64
- jedieaston 6y agoDocker on ARM will work, Docker for x86 will not. The State of the Union showed a demo of Hypervisor.framework with Parallels, and they made it clear that Debian AArch64 was running (uname -a). Since Docker runs inside a VM on the Mac, it'll have to be an ARM VM with ARM containers. (Presumably, running docker build with your Dockerfile will make it work just fine, unless you need x86 specific libraries).
- nielsole 6y agoCould you run the linux docker machine on aarch64 and just the docker container/process on JIT-x86? The majority of syscalls doesn't care about architecture, do they? And the OS should theoretically be agnostic to the machine code the application is written in. Probably requires some cooperation on part of the linux docker host. Did I get the idea across? You would go to hell for implementing that either way
- jedieaston 6y agoYou should be able to, since everything Docker runs inside of a Linux VM. You don't get to use Rosetta though (since it's a macOS thing), and the performance may be poor.
- mrkstu 6y agoThey haven’t clarified if Docker is ARM all the way down or if they are using QEMU to emulate x86 somewhere on the stack.
- monocasa 6y agoThey wouldn't need qemu anywhere either way; they have their own binary translator.
- saagarjha 6y agoWhich for all we know could be qemu ;)
- monocasa 6y agoI mean, they have a better emulator that they bought from the QuickTransit folk.
- mrkstu 6y agoThey've specifically called out that OS level virtualization isn't available in Rosetta 2. So if there is an x86 dependency QEMU becomes necessary.
- monocasa 6y agoThere's qemu-user for user mode only emulation in addition to qemu-system.
- cpuguy83 6y agoApple mentioned they are specifically "working with Docker to support 'these things' in coming months". Confirmed with some Docker folks they are working on "something". All very nondescript, but they said they can't talk about it yet.
- lsllc 6y agoPossibly they'll do something like WSL/WSL2 to provide an ARM based Linux kernel interface and then use Rosetta2 to translate the x64 code in user space to ARM? Having ARM only containers would be mostly useless (it's technically possible, but I bet there are very few ARM container images around).
- cpuguy83 6y agoAll the base images are multi arch, which I suspect covers the majority of uses in dev envs.
- dannyw 6y agoThere are heaps and heaps of ARM containers around thanks to the Raspberry Pi. I've never had a problem running Docker on my Pi, and I don't expect anyone will have a problem running Docker on a Mac given Apple's much much larger developer market share.
- numpad0 6y agoSo I had to look this up: Docker do not rely on VT-x. If kernel has cgroups it runs. Hypothetically it could run natively on Windows NT, Linux, Darwin, Solaris, etc if it ported for appropriate APIs. However, most Docker containers contain x86_64 Linux binaries, so the runtime environment has to be binary compatible with x86_64 Linux. Thus, instead of going through the pain similar to WSL1, Docker people just spin up a midsize Linux VM, run remote controlled Docker daemon in it and call that as the "Docker for [PLATFORM]". This will suffice because use case of Docker is to debug on a laptop and deploy to GNU/Linux servers. So if ARM macOS runs an x86_64 Ubuntu VM it also means Docker runs.
- 6y ago
- DCKing 6y agoDocker has had an experimental feature for some time to build containers cross architecture [1]. I'm guessing this transition is a good excuse to finish that up. Running cross architecture containers with only Docker is not possible as far as I know. I'm guessing that we're going to have to see a lot better adoption of cross-platform container builds because of this. [1]: https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images https://docs.docker.com/buildx/working-with-buildx/#build-mu...