class_docstr: Command runner for the fke docker multinode cluster.
  
  This command runner uses ``docker exec`` and ``docker cp`` to
  run commands and copy files, respectively.
  
  The regular ``DockerCommandRunner`` is made for use in SSH settings
  where Docker runs on a remote hose. In contrast, this command runner
  does not wrap the docker commands in ssh calls.
code: def run(
      self,
      cmd: str = None,
      timeout: int = 120,
      exit_on_fail: bool = False,
      port_forward: List[Tuple[int, int]] = None,
      with_output: bool = False,
      environment_variables: Dict[str, object] = None,
      run_env: str = "auto",
      ssh_options_override_ssh_key: str = "",
      shutdown_after_run: bool = False,
  ) -> str:
      prefix = with_docker_exec(
          [cmd],
          container_name=self.container_name,
          with_interactive=False,
          docker_cmd=self.docker_cmd,
      )[0]
      return self._run_shell(prefix)
  
file_path: ray/python/ray/autoscaler/_private/fake_multi_node/command_runner.py
imports: import os
  import subprocess
  from typing import Dict, List, Tuple
  from ray.autoscaler._private.docker import with_docker_exec
  from ray.autoscaler.command_runner import CommandRunnerInterface
label_desc: Use image node_id 3 for calling the FakeDockerCommandRunner obj's underlying member method code with example usage: obj.run(cmd, timeout, exit_on_fail, port_forward, with_output, environment_variables, run_env, ssh_options_override_ssh_key, shutdown_after_run) and returns: self