docker - apt -o APT::Keep-Downloaded-Packages=true install <pkg> 不会将 debs 保留在 docker 中

标签 docker ubuntu apt

我在 docker 上运行 ubuntu:16.04(Docker 版本 18.09.7,build 2d0083d):

docker run -it ubuntu:16.04

我正在运行 apt -o APT::Keep-Downloaded-Packages=true install curl

应该安装 curl,而不是从 /var/cache/apt/archives 中删除 deb,但这并没有发生。软件包已安装,但 deb 未保存在缓存中(或者更确切地说,保存然后删除)。

我在我的主机上试过了:

lsb_release -a
LSB Version:    core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:printing-9.20160110ubuntu0.2-amd64:printing-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial

然后它按预期工作(即包已保存)。

检查了容器和主机中的 apt 版本。两者运行相同的 apt - apt 1.2.32 (amd64)

导致忽略 APT 选项 的主机和容器之间有什么不同?

最佳答案

感谢@David Maze 的评论让我来到这里。

区别就在于此。我安装的 docker 容器在 /etc/apt/apt.conf.d 中有一个名为 docker-clean 的配置文件,其中包含 3 行:

DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };                                                          │
APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };                                                   │
Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";  

这个选项似乎已经覆盖了我的 APT::Keep-Downloaded-Packages=true。然而,在删除前两行并重新使用 APT::Keep-Downloaded-Packages=true 之后,deb 被保存在文件目录中

关于docker - apt -o APT::Keep-Downloaded-Packages=true install <pkg> 不会将 debs 保留在 docker 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284740/

相关文章:

来自 monodevelop 的 iPhone 应用程序开发

c++ - 如何为在 x86 主机上为arm目标交叉编译的项目安装依赖项

ubuntu - ubuntu 16 服务器上微软软件包的哈希和不匹配

docker - gitlab docker 几秒钟后停止,因为他无法再访问 postgres

docker - 如何从 Windows 10 计算机上的 Windows docker 访问 docker 不安全注册表?

javascript - 从主机的 Angular 来看,Docker-compose 配置前端与后端的 IP

python - crontab 重启主管 python 实例?

android - 无法在android studio中打开SPP

docker - Traefik配置文件的默认位置可以在Docker官方文件中更改吗?

linux - 升级到压缩/测试期间 Perl 冲突