code: def run(self) -> None:
      assert self.image
  
      # 1. Run the work container and launch the work.
      client = docker.DockerClient(
          base_url="unix://var/run/docker.sock"
      )
      self.container: Container = client.containers.run(
          image=self.image,
          shm_size="10G",
          stderr=True,
          stdout=True,
          stdin_open=True,
          detach=True,
          ports=[url.split(":")[-1] for url in self.work._urls if url],
          volumes=[f"{str(_shared_local_mount_path())}:/home/.shared"],
          command=f"python -m lightning run work {self.file} --work_name={self.work.name} --queue_id {self.queue_id}",
          environment={"SHARED_MOUNT_DIRECTORY": "/home/.shared"},
          network_mode="host",
      )
  
      # 2. Check the log and exit when ``Starting WorkRunner`` is found.
      for line in self.container.logs(stream=True):
          line = str(line.strip())
          print(line)
          if "command not found" in line:
              raise RuntimeError(
                  "The container wasn't properly executed."
              )
          if "Starting WorkRunner" in line:
              break
  
file_path: pytorch-lightning/src/lightning/app/utilities/packaging/docker.py
imports: import os
  import pickle
  import shutil
  import sys
  from datetime import datetime
  from typing import Optional
  from lightning.app import _PROJECT_ROOT, LightningWork
  from lightning.app.storage.path import _shared_local_mount_path
  from lightning.app.utilities.imports import _is_docker_available, _is_jinja2_available, requires
label_desc: Use image node_id 4 for calling the DockerRunner obj's underlying member method code with example usage: obj.run() without return types