【问题标题】:Docker error: Unable to locate package gitDocker 错误:无法找到包 git
【发布时间】:2015-04-28 20:43:34
【问题描述】:

我正在使用基于dockerfile/ubuntu 的图像nginx。关于附加到 docker 容器的外壳

docker exec -it <container_id> /bin/bash

我想做一个git pull 所以我尝试安装gitapt 找不到包:

root@a71e45d5cd40:/# apt-get install git
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package git

我们如何从该图像安装git,为什么它会丢失?


cat /etc/apt/sources.list

deb http://httpredir.debian.org/debian wheezy main
deb http://httpredir.debian.org/debian wheezy-updates main
deb http://security.debian.org wheezy/updates main
deb http://nginx.org/packages/mainline/debian/ wheezy nginx

cat /etc/apt/sources.list.d/*

cat: /etc/apt/sources.list.d/*: No such file or directory

apt-cache 麦迪逊 git

N: Unable to locate package git

【问题讨论】:

  • root@....你已经是超级用户,所以sudo不存在afaik。
  • @SeanKenny 谢谢,让我重新表述这个问题
  • 显示cat /etc/apt/sources.listcat /etc/apt/sources.list.d/*apt-cache madison git进行诊断。
  • 鉴于这是 docker,git 可能不是 /etc/apt/sources.list(.d/) 中带有 apt 的“注册”包(因为需要更好的词)。我不是 100% 确定 Docker 在这方面是如何工作的。
  • @DmitryVerkhoturov 更新了这些命令的输出问题

标签: git docker ubuntu apt


【解决方案1】:

发生这种情况是因为 apt 存储库尚未更新,通常的做法是在创建映像后清理 apt 存储库和 tmp 文件,而基础映像可能正在这样做。

要解决这个问题,您需要在安装 git 之前运行 apt-get update,如果安装行发生更改,最好同时结合更新和安装命令以破坏更新缓存:

RUN apt-get update && apt-get install -y git

使用-y 可以方便地自动回答所有问题。

【讨论】:

  • 谢谢你的作品!顺便说一句,如果我们想构建一个新图像,我们如何清理 apt repo 和 tmp 文件?
  • 在 Dockerfile 的末尾,类似这样的内容:RUN apt-get clean &amp;&amp; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
  • 这里请注意,除非您在添加文件的同一层(命令)上进行清理,否则清理存储库对图像大小没有帮助。 btrfs 将存储所有文件的图层
  • 我有这个:/bin/sh: apt-get: not found ?!
  • 你的图片中有 apt-get 吗?您的发行版是否使用 apt-get 或其他包管理器?
猜你喜欢
  • 2022-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2021-08-09
相关资源
最近更新 更多