我在docker上安装了Ubuntu 14.04镜像。在那之后,当我尝试在ubuntu映像中安装包时,我无法定位包错误:
apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl
如何修复这个错误?
我在docker上安装了Ubuntu 14.04镜像。在那之后,当我尝试在ubuntu映像中安装包时,我无法定位包错误:
apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl
如何修复这个错误?
当前回答
确保Dockerfile中没有任何语法错误,因为这也会导致这个错误。正确的例子是:
RUN apt-get update \
&& apt-get -y install curl \
another-package
这是修复语法错误和添加apt-get更新的组合,为我解决了这个问题。
其他回答
你需要更新Ubuntu中的软件包列表:
$ sudo apt-get update
$ sudo apt-get install <package_name>
因为映像中没有包缓存,所以需要运行:
apt-get update
在安装包之前,如果你的命令在Dockerfile中,你需要:
apt-get -y install curl
要抑制命令的标准输出,请使用-qq。如。
apt-get -qq -y install curl
我发现,当“apt-get update”运行时,在/tmp上挂载本地卷可能会导致权限问题,这会阻止包缓存被填充。希望这不是大多数人会做的事情,但如果遇到这个问题,这是另一个值得注意的问题。
当我试图在Dockerfile中安装cron和nginx-extras时,我得到了同样的错误。到目前为止,所有的答案我都试过了,没有结果。
然后我就跑了 Sudo服务docker重启 这为我解决了问题。
我突然就遇到了这个问题。我先这么做了,这似乎解决了问题:
RUN apt-get clean
RUN rm -rf /var/lib/apt/lists/*