Skip to content
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

Cannot use official docker hub image "flink" for amd64 on Apple M1 system #6138

Closed
3 tasks done
niklassemmler opened this issue Jan 18, 2022 · 2 comments
Closed
3 tasks done

Comments

@niklassemmler
Copy link

niklassemmler commented Jan 18, 2022

  • I have tried with the latest version of Docker Desktop
  • I have tried disabling enabled experimental features
  • I have uploaded Diagnostics
  • Diagnostics ID: 31776678-90A3-463B-AF77-9CAEDED77233/20220118152539

Expected behavior

I am trying to pull the docker image for Apache Flink on my Macbook Pro with Apple M1 chip (Docker version 20.10.12, build e91ed5707e). The image is available in two versions. From the Apache Flink maintainers under apache/flink and as official docker hub image under flink. Both images are built for amd64. As "Docker Desktop for Apple silicon also supports multi-platform images" (link), both images should work fine.

Actual behavior

While I can pull the former without problem, I cannot pull the latter:

❯ docker pull apache/flink:1.14.2
1.14.2: Pulling from apache/flink
Digest: sha256:3c2ccf6cdb35df7e0f9e94fa2e17e2c1777639d4c80148abb082cf7a6ac0c2ea
Status: Downloaded newer image for apache/flink:1.14.2
docker.io/apache/flink:1.14.2

❯ docker pull flink:1.14.2
1.14.2: Pulling from library/flink
no matching manifest for linux/arm64/v8 in the manifest list entries

Information

  • Macbook Pro with Apple M1 chip
  • Docker version 20.10.12, build e91ed5707e
  • Docker Desktop 4.4.2 (73305)
  • Reproduced by a colleague with an M1 macbook

One striking difference is that flink contains the platform in its manifest and apache/flink does not:

❯ diff <(docker manifest inspect flink:1.14.2) <(docker manifest inspect apache/flink:1.14.2)
2,14c2,70
<    "schemaVersion": 2,
<    "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
<    "manifests": [
<       {
<          "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
<          "size": 2840,
<          "digest": "sha256:cc231b650e6e8c238ad9a5e9005deff2535aefb46df996eab3f7c5dcf4b5fca8",
<          "platform": {
<             "architecture": "amd64",
<             "os": "linux"
<          }
<       }
<    ]
---
> 	"schemaVersion": 2,
> 	"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
> 	"config": {
> 		"mediaType": "application/vnd.docker.container.image.v1+json",
> 		"size": 9558,
> 		"digest": "sha256:319b46b3fabd39fb7c6a5a92a491c28978415ee35ef431ad68ec6b44be872919"
> 	},
> 	"layers": [
[...]
> 	]

Is it possible that docker for mac does not use the image, because of this manifest?

Workaround:

I can pull the image if I explicitly include the platform.

❯ docker pull --platform linux/x86_64 flink:1.14.2
1.14.2: Pulling from library/flink
Digest: sha256:a15bad4083276dc295dd2a337265f1747b7e49ed490d3b1e4e10203bcfeadfea
Status: Image is up to date for flink:1.14.2
docker.io/library/flink:1.14.2

Output of /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check

❯ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
Starting diagnostics

[PASS] DD0027: is there available disk space on the host?
[PASS] DD0028: is there available VM disk space?
[PASS] DD0031: does the Docker API work?
[PASS] DD0004: is the Docker engine running?
[PASS] DD0011: are the LinuxKit services running?
[FAIL] DD0016: is the LinuxKit VM running? vm is not running: vm has not started
[PASS] DD0001: is the application running?
[PASS] DD0018: does the host support virtualization?
[FAIL] DD0017: can a VM be started? vm has not started: vm has not started
[PASS] DD0015: are the binary symlinks installed?
[PASS] DD0003: is the Docker CLI working?
[PASS] DD0013: is the $PATH ok?
[PASS] DD0007: is the backend responding?
[PASS] DD0014: are the backend processes running?
[PASS] DD0008: is the native API responding?
[PASS] DD0009: is the vpnkit API responding?
[PASS] DD0010: is the Docker API proxy responding?
[PASS] DD0012: is the VM networking working?
[PASS] DD0032: do Docker networks overlap with host IPs?
[SKIP] DD0030: is the image access management authorized?
[PASS] DD0019: is the com.docker.vmnetd process responding?
[PASS] DD0033: does the host have Internet access?

Please investigate the following 1 issue:

1 : The test: can a VM be started?
    Failed with: vm has not started: vm has not started

The Docker engine runs inside a Linux VM. Therefore we must be able to start Virtual Machines.

Not sure what this means. I can start docker container just fine.

Steps to reproduce the behavior

  1. Take an Apple Macbook Pro with M1 chip and install Docker desktop
  2. Run docker pull flink:1.14.2 in the terminal
@docker-robott
Copy link
Collaborator

Issues go stale after 90 days of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30 days of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

@docker-robott
Copy link
Collaborator

Closed issues are locked after 30 days of inactivity.
This helps our team focus on active issues.

If you have found a problem that seems similar to this, please open a new issue.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle locked

@docker docker locked and limited conversation to collaborators Jun 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants