class_docstr: :class:`ContainerPod` starts a runtime of :class:`BaseRuntime` inside a container. It leverages :class:`multiprocessing.Process` to manage the logs and the lifecycle of docker container object in a robust way.
class_docstr_tok: [":","class",":","`","ContainerPod","`","starts","a","runtime","of",":","class",":","`","BaseRuntime","`","inside","a","container",".","It","leverages",":","class",":","`","multiprocessing.Process","`","to","manage","the","logs","and","the","lifecycle","of","docker","container","object","in","a","robust","way","."]
docstr: Joins the Pod.
  
  :param args: extra positional arguments to pass to join
  :param kwargs: extra keyword arguments to pass to join
docstr_tok: ["Joins","the","Pod",".",":","param","args",":","extra","positional","arguments","to","pass","to","join",":","param","kwargs",":","extra","keyword","arguments","to","pass","to","join"]
code: def join(self, *args, **kwargs):
      """Joins the Pod.
  
      :param args: extra positional arguments to pass to join
      :param kwargs: extra keyword arguments to pass to join
      """
      import docker
  
      client = docker.from_env()
  
      try:
          container_id = self._container.id
          containers = client.containers.list()
          while container_id in containers:
              time.sleep(0.1)
              containers = client.containers.list()
      except docker.errors.NotFound:
          pass
      self.logger.debug(f"joining the process")
      self.worker.join(timeout=10, *args, **kwargs)
      self.logger.debug(f"successfully joined the process")
  
imports: import argparse
  import copy
  import multiprocessing
  import os
  import platform
  import re
  import signal
  import time
  from typing import TYPE_CHECKING, Dict, Optional, Union
  from jina.constants import __docker_host__, __windows__
  from jina.enums import PodRoleType, DockerNetworkMode
  from jina.excepts import BadImageNameError, DockerVersionError
  from jina.helper import random_name, slugify
  from jina.importer import ImportExtensions
  from jina.logging.logger import JinaLogger
  from jina.orchestrate.helper import generate_default_volume_and_workspace
  from jina.orchestrate.pods import BasePod
  from jina.orchestrate.pods.container_helper import get_docker_network, get_gpu_device_requests
  from jina.parsers import set_gateway_parser
label_desc: Use image node_id 7 for calling the ContainerPod obj's underlying member method code with example usage: obj.join() without return types