问题: 已经把要打包的容器里面的垃圾文件清理了,但commit打包完仍很大。
调研: 追求容器完整性和高效管理Docker镜像时,直接使用docker commit
命令来保存对容器的修改并创建新镜像,虽然简便,但确实存在导致镜像体积迅速膨胀的问题。这是因为Docker镜像的分层设计特性:每次对容器的修改(如安装软件、删除文件等)都会作为新的一层添加到镜像中,即使这些修改在后续操作中被撤销或替换,原有的层依然保留在镜像中,从而增加了镜像的复杂度和体积。 一般这个问题都是用采用Dockerfile来构建镜像,因不想用Dockerfile去构建镜像所需的所有命令和参数写进文本文件操作,感觉费劲。。。。。所以用了如下命令:
压缩容器为镜像包命令:
docker export -o images.tar [容器ID] #压缩容器为镜像tar包
加载镜像包命令:
docker import images.tar [新镜像name:tag] #加载images.tar包,成为镜像
最后服务器可以根据新镜像name,创建容器了。
测试:用 commit 打包150g左右,用 export 打包45g左右,还可以。