docker-ce在ubuntu:22.04进行apt update时报错E: Problem executing scripts APT::Update::Post-Invoke

使用docker-ce,pull一个ubuntu:22.04镜像,run后进行

apt update

更新一会,就报错:

Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke 'rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true'
E: Sub-process returned an error code

在网上查找原因,跟docker版本有关,

Docker version 20.10.9以及以下版本使用ubuntu:22.04这个镜像会有问题。

-= 2024.06 更新=-

在Debian 12操作系统也会遇到同样问题。

0x01 临时解决法子

(只是临时法子,还是建议重装新的docker-ce版本)

在update之前修改下/etc/apt/apt.conf.d/docker-clean文件

RUN sed -i -e 's/^APT/# APT/' -e 's/^DPkg/# DPkg/' /etc/apt/apt.conf.d/docker-clean

0x02 安装新的docker-ce版本

先卸载docker-ce

# 慎用(记得先保留镜像、容器)
apt-get purge docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker /usr/bin/docker /var/lib/containerd
hash -r

再安装高于20.10.9版本的docker-ce,例如20.10.10即可,当然目前有更新版本的。

(关于安装docker-ce的方法可以参考这文:ubuntu安装docker-ce