Docker移除Dangling图像命令在CoreOS系统单元文件中不起作用

我想在我的CoreOS实例中定期执行Docker dangling image remove命令作为Cron作业。 但由于某些原因,虽然systemd单位计时器成功执行晃荡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 

我认为主要的罪魁祸首是systemd对shell风格命令parsing( 源代码 )的支持有限。 为了执行$(...)部分,你需要在shell中执行命令:

 ExecStart=/bin/sh -c "/bin/docker rmi $(docker images --quiet --filter 'dangling=true')"