Docker删除Dangling图像命令在CoreOS系统单元文件中不起作用
问题描述:
我想在我的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
答
我认为主要的罪魁祸首是systemd
对壳式命令解析(source)的支持有限。为了要执行的$(...)
部分,则需要在壳到执行命令:
ExecStart=/bin/sh -c "/bin/docker rmi $(docker images --quiet --filter 'dangling=true')"
+1
你的答案解决了我的问题!感谢来源。 –
1)本属于上ServerFault或超级用户,而不是*的。很高兴知道下次。 –
2)你有没有试过收集'journalctl -xe'和'systemctl status remove-docker-dangling'的输出? –
@DerekBrown systemctl状态显示其健康活跃! –