为什么可以';Docker找不到现有的包?

为什么可以';Docker找不到现有的包?,docker,dockerfile,protocol-buffers,Docker,Dockerfile,Protocol Buffers,我在使用Docker方面是新手,所以这对一些人来说可能是显而易见的。我正在运行Ubuntu 18.04TLS 我想在映像中安装包“python3protobuf”。我尝试使用Dockerfile中的以下行执行此操作: ... RUN apt-get update && \ apt-get install -y --no-install-recommends \ python3-protobuf \ <some other packag

我在使用Docker方面是新手,所以这对一些人来说可能是显而易见的。我正在运行Ubuntu 18.04TLS

我想在映像中安装包“python3protobuf”。我尝试使用Dockerfile中的以下行执行此操作:

...
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        python3-protobuf \
        <some other packages to be installed>
...
。。。
运行apt-get-update&&\
apt get install-y--不建议安装\
蟒蛇3原体\
...
当我运行“docker build-t myImageName”时,我得到以下消息:

E:找不到包python3 protobuf

我正在安装许多软件包,但这是唯一一个给我带来问题的软件包


我知道包名是正确的,因为在终端中,当我“apt搜索”它时,它被找到了。此外,在dockerfile中,我执行建议的“更新”和“安装”步骤。所以它应该找到它。你知道为什么没有吗?

@banuj回答了这个问题

“python3 protobuf”软件包从Ubuntu18.04及更高版本开始提供。我拍摄的基本图像使用的是ubuntu 16.04

我有两种方法来解决这个问题:

  • 使用ubuntu 18.04(或更高版本)附带的基本映像
  • 使用pip安装软件包

  • 我最终使用了选项二。

    这不是一个pip包吗?您使用的是哪种基本映像?
    python3protobuf
    软件包仅适用于Ubuntu>=18.04。如果您的FROM映像低于Ubuntu 18.04,则找不到包。@Blokje5也有一个pip版本,但我不是指那个版本。@banuj我的基本映像是:nvidia/cuda:8.0-cudnn5-devel-ubuntu16.04。这会有区别吗?看。ubuntu16.04不存在所需的包。您应该使用pip包或升级基本映像。