undo apt-get update(在docker容器中)

时间:2016-05-27 00:20:14

标签: docker apt-get

我正在使用docker并希望通过在ubuntu映像上的zip文件中安装应用程序来创建一个最小的新层。 ubuntu映像既没有安装wget也没有解压缩,所以我使用apt-get安装它们,这需要先apt-get update

docker run -it --name app_container ubuntu:latest
# now i have terminal access to the fresh app_container

# install wget and unzip
apt-get update
apt-get install wget -y
apt-get install unzip -y

# download and unpack the app
# ...

# remove wget and unzip
apt-get purge unzip
apt-get purge wget
# i need to remove some dependencies of wget that are no longer needed
apt-get autoremove

此时如果新的docker层的唯一内容是新应用程序,但仍有apt-get update创建/更新的文件,那将是很好的。我尝试使用

删除它们
apt-get clean

但是

docker diff app_container

显示还有很多已更改的文件(不属于该应用)。好的,所以它们的大小可以忽略不计(主要是/etc/ssl/var/lib/dpkg/info中的一些剩余wget证书以及/var/lib/app/lists中的23MB归档文件),但本着最干净的docker层的精神:是还有一种聪明的方法可以删除它们吗? ('聪明'意思是不诉诸暴力rm)

2 个答案:

答案 0 :(得分:2)

使用apt-get更新应与同一层中的rm -rf /var/lib/apt/lists/*配对。

使用此在线工具进行一些优化和清晰度检查: https://www.fromlatest.io/

答案 1 :(得分:1)

似乎没有比删除/ var / lib / app / lists

中的所有内容更好的建议