ubuntu:22.04 上的 apt update 导致某些 docker 主机出现错误 100

ubuntu:22.04 上的 apt update 导致某些 docker 主机出现错误 100

我有两台裸机,每台都运行 Ubuntu LTS 18.04,并且docker --version都报告 20.10.7。

在每个页面上,我都提取了最新的图像Ubuntu:22.04. 两份报告均逐字逐句:

$ docker pull ubuntu:22.04
22.04: Pulling from library/ubuntu
Digest: sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d
Status: Image is up to date for ubuntu:22.04
docker.io/library/ubuntu:22.04

$ docker images | grep 'ubuntu\s*22.04'
ubuntu                                             22.04     d2e4e1f51132   2 weeks ago     77.8MB

然而:虽然在一台主机上,apt update容器内运行正常,但在另一台主机上,我们会收到返回代码为 100 的错误:

$ docker run -it ubuntu:22.04
root@81ddacc04c9f:/# apt update
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [84.2 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [109 kB]
Get:5 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [61.3 kB]
Get:6 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [61.0 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [90.7 kB]    
Get:8 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]
Get:9 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]                                                                                                  
Get:10 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]                                                                                                      
Get:11 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]                                                                                                 
Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [157 kB]                                                                                               
Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [68.6 kB]                                                                                        
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [97.6 kB]                                                                                          
Fetched 20.8 MB in 13s (1641 kB/s)                                                                                                                                               
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
root@81ddacc04c9f:/# echo $?
100

因此,在该容器中安装程序包的任何后续尝试都将失败。

较旧的 ubuntu docker 镜像(例如ubuntu:18.04ubuntu:20.04)不受影响。

答案1

问题主机似乎是采用非标准构造,也可能是较旧的构造。

除此之外主机的 /etc/apt/sources.list.d/docker.list其中只有一行被注释掉了。有人会认为这会影响主机上的 apt update,而不是容器上的 apt update,所以我不认为这是可能的原因。

无论如何,在从错误的主机上删除 Docker-CE 及其先决条件的所有痕迹并从 重新安装最新的稳定 Docker-CE 后download.docker.com,问题就消失了。 经验教训:MAJOR.MINOR.PATCH 并不能说明全部情况。

相关内容