如何编写 docker 系统按计划修剪的 shell 脚本

San*_*sli 6 linux bash cron docker

docker system prune希望回答 y/n。如何传入 shell 脚本 我的 shell 脚本

#!/bin/sh
docker stop registry
docker system prune
docker run -d -p 5000:5000 --restart=always --name registry -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml registry:2
Run Code Online (Sandbox Code Playgroud)

我将 cron 表达式配置为每分钟
crontab -e

* * * * * /bin/sh /home/sansli/dc.sh
Run Code Online (Sandbox Code Playgroud)

我该如何测试?我正在检查创建日期为 docker ps -a

Mik*_*iak 10

解决方案是docker system prune -f,它将删除所有已停止的容器、所有未使用的网络、所有悬空图像和构建缓存。

您可以使用 crontab 定期运行该命令。看一下这个 crontab 的例子:

0 3 * * * /usr/bin/docker system prune -f
Run Code Online (Sandbox Code Playgroud)

您还可以将此命令放入脚本中:

#!/bin/sh
docker stop registry
docker system prune -f
docker run -d -p 5000:5000 --restart=always --name registry -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml registry:2
Run Code Online (Sandbox Code Playgroud)