我想在我的CoreOS实例中定期执行Docker dangling image remove命令作为Cron作业。但由于某种原因,尽管系统单元计时器成功执行,悬挂的泊坞窗图像将不会被删除。但是单独运行命令会成功删除悬空的docker图像。
我的服务文件(remove-docker-dangling.service)
[Unit]
Description=Removing Docker Dangling Images Cron Service
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
ExecStart=/bin/docker rmi $(docker images --quiet --filter "dangling=true")
我的计时器文件(remove-docker-dangling.timer)
[Unit]
Description=Run remove-docker-dangling.service every 30 minutes
[Timer]
OnCalendar=*:0/30
答案 0 :(得分:1)
我认为主要的罪魁祸首是systemd
对shell风格的命令解析(source)的支持有限。为了执行$(...)
部分,您需要在shell中执行命令:
ExecStart=/bin/sh -c "/bin/docker rmi $(docker images --quiet --filter 'dangling=true')"