使用shell脚本来实现清理三个月以外的镜像,传统环境可以使用crontab定期执行shell脚本。

cat clear_image.sh
#!/bin/bash
time=`docker images |grep 'months' |awk '{print $4}'`
for i in $time
do
  if [ $i -ge 3 ]; then
    docker images | awk '{print $3}' |xargs docker rmi 
  fi
done

容器化环境可以将这个shell脚本做成一个镜像,然后cronjob来定期执行。Dockerfile如下:

FROM alpine:latest
COPY clear_image.sh /tmp/clear_image.sh
RUN chmod +x /tmp/clear_image.sh
CMD /tmp/clear_image.sh