Docker Containerd snapshotter Overlayfs, docker save fails for image pulled using --platform=linux/arm64 on amd64 host.
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 6.1k
- Forks
- 2.2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 43
Description
Description
docker save fails for image pulled using --platform=linux/arm64 on amd64 host.
I pulled image as,
docker pull --platform=linux/arm64 nginx:latest
docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest sha256:04ba374043ccd2fc5c593885c0eacddebabd5ca375f9323666f28dfd5a9710e3 5 weeks ago 273MB
docker save -o nginx.tar sha256:04ba374043ccd2fc5c593885c0eacddebabd5ca375f9323666f28dfd5a9710e3**
Error response from daemon: unable to create manifests file: content digest sha256:88a0a069d5e9865fcaaf8c1e53ba6bf3d8d987b0fdc5e0135fec8ce8567d673e: not found
Not able to do docker save because of above error
Extra info,
Although, docker save works with arm64 arch image if image is pulled using mainfest digest as below,
docker pull nginx:latest@sha256:9f661996f4d1cea788f329b8145660a1124a5a94eec8cea1dba0d564423ad171
docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx <none> sha256:9f661996f4d1cea788f329b8145660a1124a5a94eec8cea1dba0d564423ad171 5 weeks ago 273MB
docker save -o nginx.tar sha256:9f661996f4d1cea788f329b8145660a1124a5a94eec8cea1dba0d564423ad171 - success
Reproduce
Same as above description.
Expected behavior
No response
docker version
docker version
Client:
Version: 25.0.3
API version: 1.44
Go version: go1.21.6
Git commit: 4debf41
Built: Tue Feb 6 21:13:00 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 25.0.3
API version: 1.44 (minimum version 1.24)
Go version: go1.21.6
Git commit: f417435
Built: Tue Feb 6 21:13:08 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.4.8
GitCommit: 7eba5930496d9bbe375fdf71603e610ad737d2b2
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
[root@localhost sha256]#
docker info
# docker info
Client:
Version: 25.0.3
Context: default
Debug Mode: false
Plugins:
app: Docker Application (Docker Inc.)
Version: v0.8.0
Path: /usr/libexec/docker/cli-plugins/docker-app
buildx: Build with BuildKit (Docker Inc.)
Version: v0.3.1-tp-docker
Path: /usr/libexec/docker/cli-plugins/docker-buildx
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 4
Server Version: 25.0.3
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
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: 7eba5930496d9bbe375fdf71603e610ad737d2b2
runc version: v1.1.12-0-g51d5e94
init version: de40ad0
Security Options:
seccomp
Profile: builtin
Kernel Version: 5.4.17-2136.323.8.2.el7uek.x86_64
Operating System: Oracle Linux Server 7.9
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.544GiB
Name: localhost.localdomain
ID: 0844a04b-e797-4332-881c-74867bca5af0
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTPS Proxy: http://10.115.27.54:3128/
No Proxy: localhost,127.0.0.1,localaddress,.localdomain.com
Username: mchetan.more@gmail.com
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
[root@localhost sha256]#
Additional Info
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the documented docker pull --platform=linux/arm64 and docker save reproduction on the Docker Engine configuration shown, then compare it with the manifest-digest pull that succeeds. Trace how docker save handles the platform-specific image and the reported missing content digest. Done means saving the image pulled with --platform completes successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100