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

Docker构建依赖于主机Ubuntu版本,而不是实际的Docker文件,docker,ubuntu,ffmpeg,ubuntu-16.04,ubuntu-20.04,Docker,Ubuntu,Ffmpeg,Ubuntu 16.04,Ubuntu 20.04,我的docker构建面临一个问题 我有一个dockerfile,如下所示: 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工具 FROM python:3.

我的docker构建面临一个问题

我有一个dockerfile,如下所示:

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工具

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
之后,我用
libav工具
替换了
ffmpeg
,它在ubuntu:16.04上运行

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


docker build是否应该与我使用的ubuntu版本保持一致。

删除现有图像并再次拉取它。似乎您有一个旧映像,它可能有不同的基本操作系统,这就是您看到问题的原因

删除现有映像并再次拉取它。似乎您有一个旧映像,它可能有不同的基本操作系统,这就是您看到问题的原因

我希望您在任何节点上都没有python:3.6的缓存映像?我建议在我尝试删除
python:3.6
图像并再次拉取它之后,也做一次最新的拉取。它修复了一个错误,我想我有一个旧版本的Python3.6,它有一个旧版本的debian。非常感谢你!!!我希望在任何节点上都没有python:3.6的缓存映像?我建议在我尝试删除
python:3.6
图像并再次拉取它之后,也做一次最新的拉取。它修复了一个错误,我想我有一个旧版本的Python3.6,它有一个旧版本的debian。非常感谢你!!!