如何每天自动清理(修剪)docker 镜像
注意:这只会移除没有标签的 docker 镜像,而不是所有未关联到运行或停止容器的镜像。如果这不是期望的行为,请参见我们关于如何每天自动清理(修剪)docker 镜像的文章。
docker image prune 提供了一种简单的方法从系统中移除"未使用"(即未标记)的 docker 镜像,因此修复或显著延迟了 docker 占用所有磁盘空间的问题。
我使用 TechOverflow 的简单 systemd 计时器生成器创建了基于 systemd-timer 的每日修剪例程。
使用以下命令快速安装
install_cleanup_docker.sh
wget -qO- https://techoverflow.net/scripts/install-cleanup-docker.sh | sudo bash这是自动创建和安装两个 systemd 配置文件的脚本。
install-cleanup-docker.sh
#!/bin/sh
# 此脚本通过 "docker image prune" 安装自动 docker 清理
# 到基于 systemd 的系统上。
# 它要求 docker 已正确安装
cat >/etc/systemd/system/PruneDocker.service <<EOF
[Unit]
Description=PruneDocker
[Service]
Type=oneshot
ExecStart=/usr/bin/docker image prune -f
WorkingDirectory=/tmp
EOF
cat >/etc/systemd/system/PruneDocker.timer <<EOF
[Unit]
Description=PruneDocker
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
EOF
# 启用并启动服务
systemctl enable PruneDocker.timer && sudo systemctl start PruneDocker.timer要查看日志,使用
view_prune_logs.sh
journalctl -xfu PruneDocker.service要查看状态,使用
view_prune_status.sh
sudo systemctl status PruneDocker.timer要立即清理你的 docker 镜像,使用
start_prune_manual.sh
sudo systemctl start PruneDocker.serviceIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow