2017-10-14 54 views
1

我想在我的CoreOS实例中定期执行Docker dangling image remove命令作为Cron作业。但由于某些原因,虽然systemd单位计时器已成功执行,但悬挂的docker映像不会删除。但单独运行命令会成功移除悬挂的码头图像。Docker删除Dangling图像命令在CoreOS系统单元文件中不起作用

我的服务文件(删除 - 泊坞窗 - 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") 

我的计时器文件(删除 - 泊坞窗 - dangling.timer)

[Unit] 
Description=Run remove-docker-dangling.service every 30 minutes 

[Timer] 
OnCalendar=*:0/30 
+1

1)本属于上ServerFault或超级用户,而不是StackOverflow的。很高兴知道下次。 –

+1

2)你有没有试过收集'journalctl -xe'和'systemctl status remove-docker-dangling'的输出? –

+1

@DerekBrown systemctl状态显示其健康活跃! –

回答

1

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

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

你的答案解决了我的问题!感谢来源。 –

相关问题