docker进行打包
docker save 命令在导出镜像时,需要在宿主机上保留临时文件空间。出现 no space left on device 错误通常由以下原因导致:
- Docker临时目录空间不足:默认路径为 /var/lib/docker/tmp。
- 目标保存路径空间不足:当前工作目录(如 /root)可用空间不足。
- 镜像体积过大:导出文件可能超过宿主机剩余存储容量。
清理docker临时文件
# 会清除所有未使用的镜像、网络和卷,谨慎操作
# 清理Docker缓存和临时文件
docker system prune -a --volumes
# 强制删除所有停止容器、未使用的镜像、网络和卷
docker system prune -af --volumes
调整导出路径
# 将导出路径指向其他有足够空间的目录(如 /opt)
docker save m8d:V3.1.0.250409 > /opt/m8d:V3.1.0.250409.tar
分阶段导出
# 分批次导出或压缩导出文件
docker save m8d:V3.1.0.250409 | gzip > /opt/m8d.tar.gz
镜像分层导出
# 使用 `docker image save` 分层导出(需Docker 19.03+)
docker image save --output=m8d.tar m8d:V3.1.0.250409
规划存储策略
# 配置Docker使用独立存储卷(需重启Docker服务)
mkdir -p /data/docker
echo '{"graph":"/data/docker"}' > /etc/docker/daemon.json