我在 Ubuntu 22.04(CLI,而不是 Docker-Desktop)上运行 docker,并且不断收到层验证错误。请参阅下面的示例:
mjozwikowski:~$ docker -D pull postgres:latest
latest: Pulling from library/postgres
648e0aadf75a: Downloading [==========================> ] 15.44MB/29.12MB
f715c8c55756: Download complete
b11a1dc32c8c: Downloading 2.693MB
f29e8ba9d17c: Verifying Checksum
78af88a8afb0: Waiting
b74279c188d9: Waiting
6e3e5bf64fd2: Waiting
b62a2c2d2ce5: Waiting
eba91ca3c7a3: Waiting
d4a24cdf2433: Waiting
b20f8a8dfd5c: Waiting
e0731dd084c3: Waiting
0361da6a228e: Waiting
filesystem layer verification failed for digest sha256:f29e8ba9d17cfa147141648b72ff8ab49a86234dfe1194f6220690939f1daa3c
mjozwikowski:~$ docker -D pull postgres:latest
latest: Pulling from library/postgres
648e0aadf75a: Pull complete
f715c8c55756: Pull complete
b11a1dc32c8c: Pull complete
f29e8ba9d17c: Pull complete
78af88a8afb0: Pull complete
b74279c188d9: Pull complete
6e3e5bf64fd2: Pull complete
b62a2c2d2ce5: Pull complete
eba91ca3c7a3: Verifying Checksum
d4a24cdf2433: Download complete
b20f8a8dfd5c: Download complete
e0731dd084c3: Download complete
0361da6a228e: Download complete
filesystem layer verification failed for digest sha256:eba91ca3c7a37844775569d1771c8acfab80b32d9c24f4a0b5b998d91911d747
我已经多次测试过这个命令。此问题发生在不同的层上(尽管有些层往往会出现更多次),并且偶尔(例如二十分之一)一切正常。但在其他图像上(即
mcr.microsoft.com/mssql/server:2019-CU18-ubuntu-20.04
我无法成功完成拉动。
现在是全新安装。我已经完全删除了 docker 及其配置并重新安装了所有内容。
/var/lib/docker
已被删除,/etc/docker/daemon.json
和 ~/.docker/config.json
也被删除。
我不使用代理,互联网连接稳定,而且这不是虚拟机 - 它是本机 Ubuntu 安装。我已经尝试过 docker-desktop ,一切都很好,所以这不是存储库问题,也不是连接问题。
启动服务不报错:
sie 05 14:02:03 systemd[1]: Starting Docker Application Container Engine...
░░ Subject: A start job for unit docker.service has begun execution
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit docker.service has begun execution.
░░
░░ The job identifier is 3852.
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.041443800+02:00" level=info msg="Starting up"
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.042248549+02:00" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.055564872+02:00" level=info msg="Loading containers: start."
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.383176470+02:00" level=info msg="Default bridge (docker0) is assigned with an IP address 192.168.128.0/24. Daemon option --bip can be used to set a preferred IP address"
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.461435658+02:00" level=info msg="Loading containers: done."
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.474691599+02:00" level=info msg="Docker daemon" commit=a61e2b4 graphdriver=overlay2 version=24.0.5
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.474754307+02:00" level=info msg="Daemon has completed initialization"
sie 05 14:02:03 dockerd[8422]: time="2023-08-05T14:02:03.491109520+02:00" level=info msg="API listen on /run/docker.sock"
sie 05 14:02:03 systemd[1]: Started Docker Application Container Engine.
░░ Subject: A start job for unit docker.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit docker.service has finished successfully.
░░
░░ The job identifier is 3852.
我将不胜感激所有的帮助。我已经没有主意了。
这似乎是一个已知的随机错误。 GitHub 上有一些关于此问题的开放问题,例如 https://github.com/GoogleContainerTools/kaniko/issues/1962。
两种可能的解决方法,不能解决错误,而只能减轻错误,似乎是:
/var/lib/docker
文件夹,然后重试(但你说你已经这样做了)--cache=true
标志来禁用缓存