2017-10-14 78 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

你的答案解決了我的問題!感謝來源。 –