当前位置: 首页 > 知识库问答 >
问题:

无法(apt get)在docker内部安装软件包

姜钊
2023-03-14

我安装了ubuntu 14.04虚拟机并运行docker(1.11.2)。我尝试构建示例映像(这里)。

Docker文件:

FROM java:8 

# Install maven
RUN apt-get update  
RUN apt-get install -y maven
....

我发现以下错误:

Step 3: RUN apt-get update
 --> Using cache
 --->64345sdd332
Step 4: RUN apt-get install -y maven
 ---> Running in a6c1d5d54b7a
Reading package lists...
Reading dependency tree...
Reading state information...
E: Unable to locate package maven
INFO[0029] The command [/bin/sh -c apt-get install -y maven] returned a non-zero code:100

我尝试过以下解决方案,但没有成功。

>

  • 我是码头工人

    以apt get-qq-y安装curl运行:相同错误:(

    如何查看详细的错误消息?a有办法解决这个问题吗?

  • 共有3个答案

    裘嘉木
    2023-03-14

    基于我遇到的类似问题,您希望同时考虑可能的网络问题和可能的图像相关问题。

    >

  • 网络问题:你已经在看代理相关的东西了。还要确保docker自动完成的iptables设置没有被您自己或其他应用程序意外地搞砸。通常,如果另一个docker容器使用net=host选项运行,这可能会导致问题。

    图片问题:您在容器中运行的发行版不是Ubuntu 14.04,而是java:8构建的发行版。如果您从docker hub上的官方库中获取java图像,那么您的图像层次结构最初来自Debian jessie。您可能希望查看此层次结构中的不同Dockerfile,以找出回购设置与您正在查看的不同。

    对于这两种情况,为了调试它,我建议您在最新的映像内运行一个shell,以查看映像中的实际网络和回购情况。就你而言

    docker run -ti --rm 64345sdd332 /bin/bash
    

    在运行install maven命令之前提供一个shell。

  • 袁羽
    2023-03-14

    apt-get更新的缓存结果可能非常陈旧。根据Docker最佳实践重新设计包拉取:

    FROM java:8 
    
    # Install maven
    RUN apt-get update \
     && DEBIAN_FRONTEND=noninteractive \
        apt-get install -y maven \
     && apt-get clean \
     && rm -rf /var/lib/apt/lists/*  
    
    子车轶
    2023-03-14

    之前,您可能需要更新docker内部的操作系统

    首先尝试运行apt get update,然后运行apt get install xxx

     类似资料:
    • 问题内容: 我在Docker上安装了Ubuntu 14.04映像。之后,当我尝试在ubuntu映像中安装软件包时,我无法找到软件包错误: 如何解决这个错误? 问题答案: 这是因为映像中没有包缓存,因此需要运行: 在安装软件包之前,并且如果您的命令在Dockerfile中,则需要: 要取消命令的标准输出,请使用。例如

    • 问题内容: 我在Ubuntu 16.04 LTS上安装了pycharm社区版(最新的稳定版本),我无法通过pycharm安装软件包,之前已经可以安装它们。我可以通过pip安装软件包,但想解决此问题。 用谷歌搜索了这个问题,但是找不到任何修复,我有一台Windows机器,它没有遇到同样的问题。 问题答案: 我有解决方案,我转至https://youtrack.jetbrains.com/issue/

    • 本文向大家介绍Docker 安装Debian / Ubuntu软件包,包括了Docker 安装Debian / Ubuntu软件包的使用技巧和注意事项,需要的朋友参考一下 示例 在单个运行命令上运行安装以合并更新和安装。如果以后添加更多软件包,它将再次运行更新并安装所有需要的软件包。如果更新是单独运行的,它将被缓存,并且软件包安装可能会失败。脚本安装需要将前端设置为非交互式,并传递-y来安装。在安

    • 如何在bitnami spark docker image:latest中安装附加软件包, 我也不能做sudo su-

    • 嘿,伙计们,我想我的pip3遇到了麻烦。有人能帮我吗。我运行了以下命令: 它将此作为一个输出:这个输出不仅与tensorflow软件包有关,而且与我尝试用pip3安装的任何软件包有关。 编辑的原因是什么:pip工作正常,但pip3不工作