Docker删除Dangling图像命令在CoreOS systemd单元文件中不起作用

时间:2017-10-14 05:14:35

标签: docker systemd coreos

我想在我的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

1 个答案:

答案 0 :(得分:1)

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

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