01-Docker commit 镜像太大的解决办法

在一些情况下,需要将容器直接打包为镜像。就会使用下面的命令:

1
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

用上面的命令有一个问题,就是镜像越来越大。我们可以通过:docker system df -v,在【Containers space usage:】中查看容器的大小

所以急需把镜像缩小。

方法1:直接打包容器,然后import为镜像img1

1
2
3
docker export -o tar文件名 容器ID
# 示例
docker import text.tar text:0.0.1

方法2:将容器内根目录所有文件压缩。传到容器外,再import为镜像img1

1
2
3
4
5
6
# 第一步:压缩
sudo tar --exclude=./proc --exclude=./sys --exclude=./img.tar -cvf base_img.tar ./
# 第二步:传出容器
docker cp 容器ID:base_img.tar ./
# 第三步:import为镜像
cat base_img.tar | sudo docker import - img:1.0.1

压缩时会提醒权限问题【tar: Exiting with failure status due to previous errors】,导致压缩报错。原因是:proc 、sys的部分文件是没有权限的。而tar –exclude=./proc 虽然是跳过proc,但是注意绝对/相对路径文件。否则还是压缩/proc,还会报错。

这个方法没用过,先记录一下。


01-Docker commit 镜像太大的解决办法
https://flepeng.github.io/042-云原生-01-Docker-01-Docker-commit-镜像太大的解决办法/
作者
Lepeng
发布于
2023年3月9日
许可协议