Infelizmente, preciso de mais representantes para comentar a resposta do / u / redgeoff ... mas o docker wait
opera em containers / tarefas que são locais para o nó no qual o comando é executado. Em um enxame de vários nós (o ponto de usar o docker swarm), o nó em que você está não tem garantia de estar onde a tarefa de serviço está sendo executada.
Algo como isso deve ser melhor:
$ docker service ps --format '{{.Node}}' serviceName
# node1.swarm.internal
$ ssh [email protected]
$ docker service rm myservice1 && docker wait $(docker ps -f "name=serviceName" -q)
No entanto , isso também assume que o nó em que a tarefa está sendo executada é um nó gerenciador. Se não estiver, os comandos docker service
não poderão ser executados. Nesse caso, você deve executar o comando docker service rm
antes de executar o ssh onde a tarefa existe.