Ubuntu 22.04原生Docker CLI拉取镜像时层验证失败求助
Docker CLI在Ubuntu 22.04下拉取镜像持续出现层验证错误
我在Ubuntu 22.04系统上使用Docker CLI(非Docker Desktop)时,拉取镜像频繁出现层验证错误,示例如下:
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
多次测试后,错误会随机出现在不同镜像层(部分层出错概率更高),偶尔(约1/20的概率)能成功拉取。但像mcr.microsoft.com/mssql/server:2019-CU18-ubuntu-20.04这类镜像,始终无法完成拉取。
已尝试的操作:
- 彻底卸载Docker及其配置文件,删除
/var/lib/docker、/etc/docker/daemon.json和~/.docker/config.json后重新安装 - 未使用代理,网络连接稳定
- 系统为原生Ubuntu 22.04,非虚拟机
- 测试Docker Desktop时拉取镜像一切正常,排除镜像仓库和网络本身的问题
Docker服务启动日志无报错:
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.
恳请大家提供解决方案,已经尝试了各种办法仍无法解决。
内容的提问来源于stack exchange,提问作者Marcin Jóźwikowski
相关产品推荐
相关产品推荐

