**Apache Airflow version**: latest

**What happened**:

There are more terminus task states than the ones we currently check in Docker Swarm Operator. This makes the operator run infinitely when the service goes into these states.
 
**What you expected to happen**:

The operator should terminate.

**How to reproduce it**:

Run a Airflow task via the Docker Swarm operator and return failed status code from it.


**Anything else we need to know**:

So as a fix I have added the complete list of tasks from the Docker reference (https://docs.docker.com/engine/swarm/how-swarm-mode-works/swarm-task-states/)
We would like to send this patch back upstream to Apache Airflow.

airflow/providers/docker/operators/docker_swarm.py
while True:
            try:
                log = next(logs)
            
            except requests.exceptions.ConnectionError:
                
                
                if self._has_service_terminated():
                    break
            except StopIteration:
                
                break
            else:
                try:
                    log = log.decode()
                except UnicodeDecodeError:
                    continue
                if log == '\n':
                    self.log.info(line)
                    line = ''
                else:
                    line += log
        
        if line:
            self.log.info(line)
    def on_kill(self) -> None:
        if self.cli is not None:
            self.log.info('Removing docker service: %s', self.service['ID'])
            self.cli.remove_service(self.service['ID'])