2017-10-14 7 views
1

Docker dangling image removeコマンドをCoreOSインスタンス内のCronジョブとして定期的に実行したい。しかし、何らかの理由でsystemdユニットのタイマーが正常に実行されていても、dockling dockerイメージは削除されません。コマンドだけを実行すると、ぶら下がっているドッカーの画像は正常に削除されます。Dockling Images Dangling imagesコマンドがCoreOSシステムで動作しないsystemdユニットファイル

マイサービスファイル(削除-ドッカ-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)。次回は知っておいてよかった。 –

+1

2) 'journalctl -xe'と' systemctl status remove-docker-dangling'の出力を収集しようとしましたか? –

+1

@DerekBrown systemctlのステータスは、その健全かつアクティブです! –

答えて

1

私がメインだと思います原因は、systemdがシェルスタイルのコマンド解析(source)のサポートが限られていることです。 $(...)部分が実行されるために、あなたは、シェルでコマンドを実行する必要があります。これはServerFaultのか、スーパーユーザーではないのStackOverflowに属し

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

あなたの答えは私の問題を解決しました!ソースにも感謝します。 –