Docker本地镜像自动被清除通常是由以下几种原因导致的:
Docker自动清理机制:
docker system df
查看磁盘使用情况手动或定时清理脚本:
docker system prune -a -f
命令Docker配置问题:
docker.json
配置文件中可能设置了自动清理策略/etc/docker/daemon.json
文件容器编排工具自动管理:
修改Docker配置文件(/etc/docker/daemon.json
):
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
设置更合理的自动清理阈值:
sudo dockerd --storage-opt dm.basesize=20G
定期手动清理而非自动清理:
# 清理未使用的镜像、容器、网络和构建缓存
docker system prune
# 仅清理未被任何容器引用的镜像
docker image prune -a
查看是否有定时清理任务:
crontab -l
systemctl list-timers
如果是空间不足导致,可考虑: - 增加磁盘空间 - 迁移Docker存储位置到更大分区
标记重要镜像为重要:
docker tag myimage:latest myimage:important
定期备份重要镜像:
docker save -o myimage_backup.tar myimage:latest
监控Docker磁盘使用情况:
watch -n 60 docker system df
通过以上方法,您应该能够解决Docker本地镜像自动清除的问题,并防止重要镜像被意外删除。