问题描述
我正在使用基于dockerfile/ubuntu
的图像nginx
。在附加到Docker容器的 shell 上
docker exec -it <container_id> /bin/bash
我想做一个git pull
,所以我尝试安装git
,但是apt
找不到软件包:
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 madison git
N: Unable to locate package git
最佳思路
发生这种情况是因为apt储存库尚未更新,通常的做法是在创建映像后清理apt储存库和tmp文件,而基本映像可能正在执行此操作。
要解决此问题,您将要在安装git之前运行apt-get update
,如果安装行更改,则最好同时结合使用update和install命令以破坏更新的缓存:
RUN apt-get update && apt-get install -y git
使用-y
可以很方便地自动回答所有问题。