2017-10-14 15 views
1

Docker dangling image remove 명령을 내 CoreOS 인스턴스에서 주기적으로 Cron 작업으로 실행하고 싶습니다. 그러나 systemd 유닛 타이머가 성공적으로 실행되면 dockling docker 이미지가 제거되지 않는 몇 가지 이유가 있습니다. 그러나 혼자 명령을 실행하면 매달려있는 도커 이미지가 성공적으로 제거됩니다.Docker 제거 이미지가 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

당신의 대답이 내 문제를 해결했습니다! 근원을 위해 또한 감사하십시오. –