我在两台不同的计算机上运行 docker 镜像,并且该镜像的内容不同。
我通过指定摘要来确保它们是相同的图像
docker run -it ubuntu@sha256:f9d633ff6640178c2d0525017174a688e2c1aef28f0a0130b26bd5554491f0da /bin/bash
但是当我跑步时
cat /etc/apt/sources.list
我得到了非常不同的内容。此外,当我尝试在一台计算机上执行 apt-get update && apt-get install curl -y
时,我收到 400 个错误请求错误,并且无法安装,而在另一台计算机上则运行正常。
坏电脑的镜像 URI 大部分来自 ubuntu 端口,即
ports.ubuntu.com/ubuntu-ports
,而好电脑则大多是 archive.ubuntu.com
我不相信这个文件是在运行时生成的,所以我无法弄清楚是什么导致了这种差异。
您面临的问题似乎是由于两台计算机之间的软件包存储库配置 (
/etc/apt/sources.list
) 不同造成的。该文件确定 apt 在哪里查找软件包和更新。
一台计算机具有来自
ports.ubuntu.com/ubuntu-ports
的镜像 URI,而另一台计算机具有 archive.ubuntu.com
的事实表明它们被配置为使用不同的存储库。这可能会导致运行 apt-get update
和 apt-get install
时的行为差异。
您可以尝试仔细检查以下内容:
仔细检查两台计算机上使用的 Docker 镜像是否确实相同。有时,即使使用相同的摘要,由于图像的构建方式或提取位置也可能会有所不同。
如果您希望两台计算机使用相同的存储库,您可以在计算机上使用不需要的镜像 URI 手动编辑
/etc/apt/sources.list
,以匹配另一台计算机的配置。您可以将文件中的 ports.ubuntu.com/ubuntu-ports
替换为 archive.ubuntu.com
。