本文整理汇总了Python中docker.client.Client.info方法的典型用法代码示例。如果您正苦于以下问题:Python Client.info方法的具体用法?Python Client.info怎么用?Python Client.info使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类docker.client.Client
的用法示例。
在下文中一共展示了Client.info方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: docker_context
# 需要导入模块: from docker.client import Client [as 别名]
# 或者: from docker.client.Client import info [as 别名]
def docker_context():
"""Make a docker context"""
host = os.environ.get('DOCKER_HOST')
cert_path = os.environ.get('DOCKER_CERT_PATH')
tls_verify = os.environ.get('DOCKER_TLS_VERIFY')
options = {"timeout": 60}
if host:
options['base_url'] = (host.replace('tcp://', 'https://') if tls_verify else host)
if tls_verify and cert_path:
options['tls'] = docker.tls.TLSConfig(
verify = True
, ca_cert = os.path.join(cert_path, 'ca.pem')
, client_cert = (os.path.join(cert_path, 'cert.pem'), os.path.join(cert_path, 'key.pem'))
, ssl_version = ssl.PROTOCOL_TLSv1
, assert_hostname = False
)
client = DockerClient(**options)
try:
info = client.info()
log.info("Connected to docker daemon\tdriver=%s\tkernel=%s", info["Driver"], info["KernelVersion"])
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as error:
raise BadDockerConnection(base_url=options['base_url'], error=error)
return client
示例2: docker_context
# 需要导入模块: from docker.client import Client [as 别名]
# 或者: from docker.client.Client import info [as 别名]
def docker_context():
"""Make a docker context"""
base_url = None
if "DOCKER_HOST" in os.environ:
base_url = os.environ["DOCKER_HOST"]
client = DockerClient(base_url=base_url, timeout=5)
try:
info = client.info()
log.info("Connected to docker daemon\tdriver=%s\tkernel=%s", info["Driver"], info["KernelVersion"])
except requests.exceptions.ConnectionError as error:
raise BadDockerConnection(base_url=base_url, error=error)
return client
示例3: docker_context
# 需要导入模块: from docker.client import Client [as 别名]
# 或者: from docker.client.Client import info [as 别名]
def docker_context():
"""Make a docker context"""
options = kwargs_from_env(assert_hostname=False)
options["version"] = "auto"
options["timeout"] = int(os.environ.get("DOCKER_CLIENT_TIMEOUT", 180))
client = DockerClient(**options)
try:
info = client.info()
log.info("Connected to docker daemon\tdriver=%s\tkernel=%s", info["Driver"], info["KernelVersion"])
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as error:
raise BadDockerConnection(base_url=options.get('base_url'), error=error)
return client
示例4: DockerController
# 需要导入模块: from docker.client import Client [as 别名]
# 或者: from docker.client.Client import info [as 别名]
class DockerController(object):
def _load_config(self):
with open('./config.yaml') as fh:
config = yaml.load(fh)
return config
def __init__(self):
config = self._load_config()
self.LOCAL_REDIS_HOST = 'netcapsule_redis_1'
self.REDIS_HOST = os.environ.get('REDIS_HOST', self.LOCAL_REDIS_HOST)
self.PYWB_HOST = os.environ.get('PYWB_HOST', 'netcapsule_pywb_1')
self.C_EXPIRE_TIME = config['init_container_expire_secs']
self.Q_EXPIRE_TIME = config['queue_expire_secs']
self.REMOVE_EXP_TIME = config['remove_expired_secs']
self.VERSION = config['api_version']
self.VNC_PORT = config['vnc_port']
self.CMD_PORT = config['cmd_port']
self.MAX_CONT = config['max_containers']
self.image_prefix = config['image_prefix']
self.browser_list = config['browsers']
self.browser_paths = {}
for browser in self.browser_list:
path = browser['path']
if path in self.browser_paths:
raise Exception('Already a browser for path {0}'.format(path))
self.browser_paths[path] = browser
self.default_browser = config['default_browser']
self.redirect_paths = config['redirect_paths']
self.randompages = []
try:
with open(config['random_page_file']) as fh:
self.randompages = list([line.rstrip() for line in fh])
except Exception as e:
print(e)
self.redis = redis.StrictRedis(host=self.REDIS_HOST)
self.redis.setnx('next_client', '1')
self.redis.setnx('max_containers', self.MAX_CONT)
self.redis.setnx('num_containers', '0')
self.redis.setnx('cpu_auto_adjust', 5.5)
throttle_samples = config['throttle_samples']
self.redis.setnx('throttle_samples', throttle_samples)
throttle_max_avg = config['throttle_max_avg']
self.redis.setnx('throttle_max_avg', throttle_max_avg)
self.redis.setnx('container_expire_secs',
config['full_container_expire_secs'])
self.T_EXPIRE_TIME = config['throttle_expire_secs']
if os.path.exists('/var/run/docker.sock'):
self.cli = Client(base_url='unix://var/run/docker.sock',
version=self.VERSION)
else:
kwargs = kwargs_from_env(assert_hostname=False)
kwargs['version'] = self.VERSION
self.cli = Client(**kwargs)
def _get_host_port(self, info, port, default_host):
info = info['NetworkSettings']['Ports'][str(port) + '/tcp']
info = info[0]
host = info['HostIp']
if host == '0.0.0.0' and default_host:
host = default_host
return host + ':' + info['HostPort']
def timed_new_container(self, browser, env, host, client_id):
start = time.time()
info = self.new_container(browser, env, host)
end = time.time()
dur = end - start
time_key = 't:' + client_id
self.redis.setex(time_key, self.T_EXPIRE_TIME, dur)
throttle_samples = int(self.redis.get('throttle_samples'))
print('INIT DUR: ' + str(dur))
self.redis.lpush('init_timings', time_key)
self.redis.ltrim('init_timings', 0, throttle_samples - 1)
return info
def new_container(self, browser_id, env=None, default_host=None):
browser = self.browser_paths.get(browser_id)
# get default browser
if not browser:
#.........这里部分代码省略.........