Skip to content

docker pull large image Fails ( ApplyLayer exit status 1 stdout: stderr: invalid argument) #637

Open
@olegTarassov

Description

@olegTarassov

Description

Hello -

The issue is happening when trying to docker pull an image of 1.2GB either on fedora 35, Ubuntu impish.
The error is:

5dcbdc60ea6b: Already exists
8671113e1c57: Already exists
e5adf43c9842: Extracting [==================================================>]  146.5MB/146.5MB
1a61808e3bf3: Download complete
ffffd5d9f875: Download complete
d20c473b524d: Download complete
60e4da6dbe2c: Download complete
002de968eae0: Download complete
failed to register layer: ApplyLayer exit status 1 stdout:  stderr: invalid argument

Setup: rootless Docker
Docker storage: tried btrfs, overlay2, overlay-FS
lima version: 0.8.2
network: vmnet

docker info:

Client:
 Context:    fedora_test
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.7.1)
  compose: Docker Compose (Docker Inc., v2.2.3)
  scan: Docker Scan (Docker Inc., v0.16.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.12
 Storage Driver: btrfs
  Build Version: Btrfs v5.15.1
  Library Version: 102
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc version: v1.0.2-0-g52b36a2
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  rootless
  cgroupns
 Kernel Version: 5.14.10-300.fc35.x86_64
 Operating System: Fedora Linux 35 (Cloud Edition)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 3.816GiB
 Name: lima-fedora
 ID: B4LY:WZAB:NEYN:KC3Z:ONUC:QGY6:JXBW:4XSH:USU7:64WH:I5EG:AMF7
 Docker Root Dir: /home/olegtarassov.linux/.local/share/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

lima yaml file (inspired from colima)

images:
  - location: "https://download.fedoraproject.org/pub/fedora/linux/releases/35/Cloud/x86_64/images/Fedora-Cloud-Base-35-1.2.x86_64.qcow2"
    arch: "x86_64"
    digest: "sha256:fe84502779b3477284a8d4c86731f642ca10dd3984d2b5eccdf82630a9ca2de6"
cpus: 4
memory: 4GiB
disk: 32GiB

networks:
  - lima: bridged
    interface: en0

mounts:
  - location: "~"
    writable: true
  - location: "/tmp/lima"
    writable: true

containerd:
  system: false
  user: false

provision:
  - mode: system
    script: |
      #!/bin/sh
      sed -i 's/host.lima.internal.*/host.lima.internal host.docker.internal/' /etc/hosts
      setenforce 0
      sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

  - mode: system
    script: |
      #!/bin/bash
      set -eux -o pipefail
      command -v docker >/dev/null 2>&1 && exit 0
      dnf install -y fuse-overlayfs dnf-plugins-core bash-completion
      dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
      dnf install -y docker-ce docker-ce-cli containerd.io
      systemctl disable --now docker.service docker.socket

  - mode: user
    script: |
      #!/bin/bash
      set -eux -o pipefail
      dockerd-rootless-setuptool.sh install
      docker context use rootless

probes:
  - script: |
      #!/bin/bash
      set -eux -o pipefail
      if ! timeout 30s bash -c "until command -v docker >/dev/null 2>&1; do sleep 3; done"; then
        echo >&2 "docker is not installed yet"
        exit 1
      fi
      if ! timeout 30s bash -c "until pgrep rootlesskit; do sleep 3; done"; then
        echo >&2 "rootlesskit (used by rootless docker) is not running"
        exit 1
      fi
    hint: See "/var/log/cloud-init-output.log". in the guest
# See "~/.lima/fedora/serial.log in the host

portForwards:
  - guestSocket: "/run/user/{{.UID}}/docker.sock"
    hostSocket: "{{.Dir}}/sock/docker.sock"

message: |
  To run `docker` on the host (assumes docker-cli is installed), run the following commands:
  ------
  docker context create lima --docker "host=unix://{{.Dir}}/sock/docker.sock"
  docker context use lima
  docker run hello-world
  sudo ln -sf ~/.lima/fedora/sock/docker.sock /var/run/docker.sock
  ------

Note that pulling images of smaller size work from either dockerhub or quay work as expected.

Thank you

Oleg

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions