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","."]
code: def __init__(self, args: "argparse.Namespace"):
      super().__init__(args)
      if (
          self.args.docker_kwargs
          and "extra_hosts" in self.args.docker_kwargs
          and __docker_host__ in self.args.docker_kwargs["extra_hosts"]
      ):
          self.args.docker_kwargs.pop("extra_hosts")
      self._net_mode = None
      self.worker = None
      self.container_name = slugify(f"{self.name}/{random_name()}")
      (
          self.net_mode,
          self.runtime_ctrl_address,
      ) = self._get_control_address()
  
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 1 to create a new ContainerPod object from inherited base classes: BasePod with example: obj = ContainerPod(args)