-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker Desktop 4.16.0 Run x86_64 dind image fails to pull images #6678
Comments
If in a parallel container that will be mapped to the same folder:/var/lib/docker and run with arm64, I will pull the amd64 image. And from the original rosetta container I will try to run container using that image, additional issue occurred:
|
Facing the same issue on Docker Desktop 4.16.1 |
Interestingly, I've run into the same issue attempting to use dind in UTM with Rosetta. |
I'm facing the same issue and cannot pull images inside a |
This sounds like this may be related to docker engine doing a "re-exec" of itself to launch a process in another namespace. The binary running under rosetta could perhaps affect this. 🤔 I'm curious though; what's the use-case to run a non-matching platform of docker-in-docker? (note that user land emulation either with QEMU or Rosetta will always be a best-effort) |
So when dockerd pulls an image it does a busybox-style re-exec to run a chrooted process to safely extract the layer. What does that actually do on the system? We can simulate this with the shell:
The error there is expected because the docker-untar function is expecting to read from a file descriptor. If we do this under rosetta, it seems rosetta is not passing along the program name and docker is just starting up like it was a normal startup.
The actual error we see is because the pull logic is also passing an argument to the command and dockerd doesn't normally have arguments except for re-execs. |
Also worth noting, I think this is fixed on master already since @corhere got rid of the re-execing... at least for tar/untar. |
Some design mistakes that were made, and desire to work on Mac instead of windows:) |
Very good and interesting explanation, thanks. |
It still fails on same error.. |
This is not specific to Docker Desktop either - getting the same error trying to test a |
I am getting the same error as well when using Rosetta and Example:
Any idea when this will be fixed? Thanks! |
In general, I would not recommend running |
Expected behavior
dind can pull images with rosetta feature enabled and amd64 images
Actual behavior
dind failes to pull images with rosetta feature enabled
Information
Output of
/Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
Steps to reproduce the behavior
The text was updated successfully, but these errors were encountered: