我有两台裸机,每台都运行 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
Run Code Online (Sandbox Code Playgroud)
但是:在一台主机上,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
Run Code Online (Sandbox Code Playgroud)
因此,在该容器中安装软件包的任何后续尝试都将失败。
较旧的 ubuntu docker 镜像,例如。ubuntu:18.04和ubuntu:20.04,不受影响。
有问题的主机似乎有一个非标准的版本,也可能是较旧的版本。
此外,主机 /etc/apt/sources.list.d/docker.list中有一行,已被注释掉。人们可能会认为这会影响主机上的 apt update,而不是容器上的,所以我不认为这是一个可能的原因。
无论如何,在从出错的主机上删除 Docker-CE 的所有痕迹及其先决条件并从 重新安装最新的稳定版 Docker-CE 之后download.docker.com,问题就消失了。经验教训:MAJOR.MINOR.PATCH 并不能说明全部情况。
| 归档时间: |
|
| 查看次数: |
4984 次 |
| 最近记录: |