Docker 构建依赖于主机 Ubuntu 版本而不是实际的 Docker 文件

Docker build dependent on host Ubuntu version not on the actual Docker File

我的 docker 构建遇到问题。

我有一个 docker 文件如下:

FROM python:3.6


RUN apt-get update && apt-get install -y libav-tools 
....

我面临的问题是在 ubuntu:20.04 LTS

上构建时出现此错误
E: Package 'libav-tools' has no installation candidate

我做了一些研究,发现 ffmpeg 应该可以替代 libav-tools

FROM python:3.6


RUN apt-get update && apt-get install -y ffmpeg 
....

我再次尝试没有任何问题。

但是当我尝试在 ubuntu:16.04 xenial 上使用 ffmpeg 构建相同的图像时,我收到一条消息

E: Package 'ffmpeg' has no installation candidate

之后,我将 ffmpeg 替换为 libav-tools,它在 ubuntu:16.04

上运行

我现在很困惑,为什么 docker 构建依赖于我正在使用的主机 ubuntu 版本,而不是实际的 docker 文件。

不应该 docker 构建是连贯的,无论我使用什么 ubuntu 版本。

删除现有镜像,重新拉取。似乎您的旧图像可能具有不同的基础 OS,这就是您看到问题的原因