Questo question spiega come arrestare i contenitori Docker avviati da un'immagine.Arrestare i contenitori finestra mobile in base al nome dell'immagine e non eseguire errori se non sono in esecuzione contenitori
Ma se non ci sono contenitori in esecuzione ottengo l'errore docker stop richiede un minimo di un argomento. Il che significa che non posso eseguire questo comando in un lungo script .sh senza che si rompa.
Come faccio a cambiare questi comandi per funzionare anche se non vengono trovati risultati?
docker stop $(docker ps -q --filter ancestor="imagname")
docker rm `docker ps -aq` &&
(sto cercando una risposta pura Docker, se possibile, non un test di bash, come sto facendo funzionare il mio script tramite ssh quindi non credo di avere accesso ai normali test di script)
Trovato la risposta nel commento di kampde su questo post del blog: http://blog.yohanliyanage.com/2015/05/docker-clean-up-after-yourself/. Basta usare xargs con r per ignorare i pipe vuoti: ** docker ps -q --filter ancestor = "imageName" | xargs -r docker stop ** – Richard
Dovresti pubblicare la tua soluzione come risposta e accettarla. –