docker / cli

The Docker CLI
Apache License 2.0
4.89k stars 1.92k forks source link

Docker push for single arch not work with containerd storage #4959

Closed jwierzbo closed 1 week ago

jwierzbo commented 6 months ago

Description

Once I enable the following in Docker Desktop for Mac: Use containerd for pulling and storing images I can not anymore re-push downloaded images for the specific arch.

I get the following error:

The push refers to repository [docker.io/wierzbiks/nifi]
missing content: content digest sha256:165029e1484c36a25c0d8df3be27b9145bd944a0b1fce6543dfb119d9b0c73c5: not found
Note: You're trying to push a manifest list/index which references multiple platform specific manifests, but not all of them are available locally or available to the remote repository.
Make sure you have all the referenced content and try again.

The issue disappears once I've disable the mentioned containerd support for pulling and storage the images.

Reproduce

  1. docker pull --platform linux/amd64 apache/nifi
  2. docker tag apache/nifi yourusername/nifi:latest
  3. docker push yourusername/nifi:latest

Expected behavior

docker push should push the image to the remote storage with success

docker version

Client:
 Cloud integration: v1.0.35+desktop.11
 Version:           25.0.3
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        4debf41
 Built:             Tue Feb  6 21:13:26 2024
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.28.0 (139021)
 Engine:
  Version:          25.0.3
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       f417435e5f6216828dec57958c490c4f8bae4f98
  Built:            Wed Feb  7 00:39:16 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 5
 Server Version: 25.0.3
 Storage Driver: overlayfs
  driver-type: io.containerd.snapshotter.v1
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.6.16-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 8
 Total Memory: 7.658GiB
 Name: docker-desktop
 ID: be5e1711-badc-483a-bf5f-a36feb9fe3b3
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Additional Info

No response

WasimAhmad commented 6 months ago

having same issue

mikolayek commented 6 months ago

me too

cpuguy83 commented 5 months ago

This should get resolved by https://github.com/moby/moby/pull/47679

yilas commented 1 week ago

Description

Once I enable the following in Docker Desktop for Mac: Use containerd for pulling and storing images I can not anymore re-push downloaded images for the specific arch.

I get the following error:

The push refers to repository [docker.io/wierzbiks/nifi]
missing content: content digest sha256:165029e1484c36a25c0d8df3be27b9145bd944a0b1fce6543dfb119d9b0c73c5: not found
Note: You're trying to push a manifest list/index which references multiple platform specific manifests, but not all of them are available locally or available to the remote repository.
Make sure you have all the referenced content and try again.

The issue disappears once I've disable the mentioned containerd support for pulling and storage the images.

Reproduce

  1. docker pull --platform linux/amd64 apache/nifi
  2. docker tag apache/nifi yourusername/nifi:latest
  3. docker push yourusername/nifi:latest

Expected behavior

docker push should push the image to the remote storage with success

Have you still that issue ?

I have the same issue with that version of docker :

❯ docker version
Client: Docker Engine - Community
 Version:           26.1.3
 API version:       1.45
 Go version:        go1.21.10
 Git commit:        b72abbb
 Built:             Thu May 16 08:34:39 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.3
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.10
  Git commit:       8e96db1
  Built:            Thu May 16 08:33:34 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.32
  GitCommit:        8b3b7ca2e5ce38e8f31a34f35b2b68ceb8470d89
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
iwedaz commented 1 week ago

Fix is a part of Docker Engine v.27.0.1 Just update your installation