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 _get_control_address(self):
      import docker
  
      client = docker.from_env()
      try:
          network = get_docker_network(client)
  
          if (
              self.args.docker_kwargs
              and "extra_hosts" in self.args.docker_kwargs
              and __docker_host__
              in self.args.docker_kwargs["extra_hosts"]
          ):
              ctrl_host = __docker_host__
          elif network:
              # If the caller is already in a docker network, replace ctrl-host with network gateway
              try:
                  ctrl_host = client.networks.get(network).attrs[
                      "IPAM"
                  ]["Config"][0]["Gateway"]
              except:
                  ctrl_host = __docker_host__
          else:
              ctrl_host = self.args.host
  
          ctrl_address = f"{ctrl_host}:{self.args.port[0]}"
  
          (
              net_mode,
              runtime_ctrl_address,
          ) = self._get_network_for_dind_linux(client, ctrl_address)
      finally:
          client.close()
  
      return net_mode, runtime_ctrl_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 2 for calling the ContainerPod obj's underlying member method code with example usage: obj._get_control_address() and returns: net_mode,  runtime_ctrl_address