Python docker.Client() Examples
The following are 30
code examples of docker.Client().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
docker
, or try the search function
.

Example #1
Source File: image.py From hummer with Apache License 2.0 | 6 votes |
def _delete_image_on_docker_host(self, base_url, image_name, image_version): """ Delete image from docker host if exists image called image_name:image_version. """ image_complete_name = '%s:%s' %(image_name, image_version) client = Client(base_url=base_url) try: client.remove_image(image=image_complete_name, force=True) except Exception: logger.info('There is no image called %s on docker host %s' % (image_complete_name, base_url)) return None logger.info('Image %s on docker host %s has been deleted.' % (image_complete_name, base_url))
Example #2
Source File: image.py From hummer with Apache License 2.0 | 6 votes |
def _delete_image_on_docker_host(self, base_url, image_name, image_version): """ Delete image from docker host if exists image called image_name:image_version. """ image_complete_name = '%s:%s' %(image_name, image_version) client = Client(base_url=base_url) try: client.remove_image(image=image_complete_name, force=True) except Exception: logger.info('There is no image called %s on docker host %s' % (image_complete_name, base_url)) return None logger.info('Image %s on docker host %s has been deleted.' % (image_complete_name, base_url))
Example #3
Source File: image.py From hummer with Apache License 2.0 | 6 votes |
def _delete_image_on_docker_host(self, base_url, image_name, image_version): """ Delete image from docker host if exists image called image_name:image_version. """ image_complete_name = '%s:%s' %(image_name, image_version) client = Client(base_url=base_url) try: client.remove_image(image=image_complete_name, force=True) except Exception: logger.info('There is no image called %s on docker host %s' % (image_complete_name, base_url)) return None logger.info('Image %s on docker host %s has been deleted.' % (image_complete_name, base_url))
Example #4
Source File: image.py From hummer with Apache License 2.0 | 6 votes |
def _tag_image_with_new_name(self, base_url, old_image_name, old_image_version, image_name, image_version): """ Docker tag old_image_name:old_image_version image_name:image_version. """ client = Client(base_url=base_url) old_image = "{}:{}".format(old_image_name, old_image_version) try: response = client.tag(image=old_image, repository=image_name, tag=image_version) except Exception as e: logger.debug(e) response = False if not response: logger.info("Tag image {} to {}:{} failed.".format(old_image, image_name, image_version)) return None image_token = self._get_image_token_on_docker_host(base_url, image_name, image_version) self._delete_image_on_docker_host(base_url, old_image_name, old_image_version) return image_token
Example #5
Source File: image.py From hummer with Apache License 2.0 | 6 votes |
def _push_image_to_registry(self, base_url, image_name, image_version, image_token): """ Push image from docker host to private registry. Returns the sha256 digest of the image. """ image_complete_name = '%s:%s' %(image_name, image_version) client = Client(base_url=base_url) try: response = [res for res in client.push(image_complete_name, stream=True)] except Exception: logger.error('Push image %s to registry failed.' % image_complete_name) return None try: digest = fetch_digest_from_response(response[-1]) except Exception: logger.error('Parse the digest response error.') return None return digest
Example #6
Source File: dockerutils.py From agentless-system-crawler with Apache License 2.0 | 6 votes |
def exec_dockerps(): """ Returns a list of docker inspect jsons, one for each container. This call executes the `docker inspect` command every time it is invoked. """ try: client = docker.Client( base_url='unix://var/run/docker.sock', version='auto') containers = client.containers() inspect_arr = [] for container in containers: inspect = exec_dockerinspect(container['Id']) inspect_arr.append(inspect) except docker.errors.DockerException as e: logger.warning(str(e)) raise DockerutilsException('Failed to exec dockerps') return inspect_arr
Example #7
Source File: test_functional_cos_emitter.py From agentless-system-crawler with Apache License 2.0 | 6 votes |
def setUp(self): self.docker = docker.Client( base_url='unix://var/run/docker.sock', version='auto') os.mkdir('/etc/cos-secrets', 0755 ) f=open("/etc/cos-secrets/access_key", "w+") f.write("test") f.close() f=open("/etc/cos-secrets/secret_key", "w+") f.write("testforall") f.close() f=open("/etc/cos-secrets/location", "w+") f.write("test") f.close() self.start_minio_container() self.start_crawled_container()
Example #8
Source File: test_functional_dockerutils.py From agentless-system-crawler with Apache License 2.0 | 6 votes |
def setUp(self): self.docker = docker.Client( base_url='unix://var/run/docker.sock', version='auto') try: if len(self.docker.containers()) != 0: raise Exception( "Sorry, this test requires a machine with no docker" "containers running.") except requests.exceptions.ConnectionError: print ("Error connecting to docker daemon, are you in the docker" "group? You need to be in the docker group.") self.docker.pull(repository='alpine', tag='latest') self.container = self.docker.create_container( image=self.image_name, command='/bin/sleep 60') self.tempd = tempfile.mkdtemp(prefix='crawlertest.') self.docker.start(container=self.container['Id'])
Example #9
Source File: test_functional_nodepackage_plugin.py From agentless-system-crawler with Apache License 2.0 | 6 votes |
def setUp(self): self.docker = docker.Client( base_url='unix://var/run/docker.sock', version='auto') try: if len(self.docker.containers()) != 0: raise Exception( "Sorry, this test requires a machine with no docker" "containers running.") except requests.exceptions.ConnectionError: print ("Error connecting to docker daemon, are you in the docker" "group? You need to be in the docker group.") self.docker.pull(repository='node', tag='11.0') self.container = self.docker.create_container( image=self.image_name, command='sleep 60') self.docker.start(container=self.container['Id'])
Example #10
Source File: test_functional_apk_package_crawler.py From agentless-system-crawler with Apache License 2.0 | 6 votes |
def setUp(self): root = logging.getLogger() root.setLevel(logging.INFO) ch = logging.StreamHandler(sys.stdout) ch.setLevel(logging.INFO) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) root.addHandler(ch) self.docker = docker.Client(base_url='unix://var/run/docker.sock', version='auto') try: if len(self.docker.containers()) != 0: raise Exception( "Sorry, this test requires a machine with no docker" "containers running.") except requests.exceptions.ConnectionError: print ("Error connecting to docker daemon, are you in the docker" "group? You need to be in the docker group.") self.start_crawled_container()
Example #11
Source File: test_functional_plugins.py From agentless-system-crawler with Apache License 2.0 | 6 votes |
def setUp(self): self.docker = docker.Client( base_url='unix://var/run/docker.sock', version='auto') try: if len(self.docker.containers()) != 0: raise Exception( "Sorry, this test requires a machine with no docker" "containers running.") except requests.exceptions.ConnectionError: print ("Error connecting to docker daemon, are you in the docker" "group? You need to be in the docker group.") self.docker.pull(repository='alpine', tag='latest') self.container = self.docker.create_container( image=self.image_name, command='/bin/sleep 60') self.tempd = tempfile.mkdtemp(prefix='crawlertest.') self.docker.start(container=self.container['Id'])
Example #12
Source File: test_tasker.py From atomic-reactor with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_timeout(timeout, expected_timeout): if not hasattr(docker, 'APIClient'): setattr(docker, 'APIClient', docker.Client) expected_kwargs = { 'timeout': expected_timeout } if hasattr(docker, 'AutoVersionClient'): expected_kwargs['version'] = 'auto' (flexmock(docker.APIClient) .should_receive('__init__') .with_args(**expected_kwargs) .once()) kwargs = {} if timeout is not None: kwargs['timeout'] = timeout DockerTasker(**kwargs)
Example #13
Source File: test_tasker.py From atomic-reactor with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_docker2(): class MockClient(object): def __init__(self, **kwargs): pass def version(self): return {} for client in ['APIClient', 'Client']: if not hasattr(docker, client): setattr(docker, client, MockClient) (flexmock(docker) .should_receive('APIClient') .once() .and_raise(AttributeError)) (flexmock(docker) .should_receive('Client') .once()) DockerTasker()
Example #14
Source File: pty.py From deepWordBug with Apache License 2.0 | 6 votes |
def __init__(self, client, container, interactive=True, stdout=None, stderr=None, stdin=None, logs=None): """ Initialize the PTY using the docker.Client instance and container dict. """ if logs is None: warnings.warn("The default behaviour of dockerpty is changing. Please add logs=1 to your dockerpty.start call to maintain existing behaviour. See https://github.com/d11wtq/dockerpty/issues/51 for details.", DeprecationWarning) logs = 1 self.client = client self.container = container self.raw = None self.interactive = interactive self.stdout = stdout or sys.stdout self.stderr = stderr or sys.stderr self.stdin = stdin or sys.stdin self.logs = logs
Example #15
Source File: dockerplugin.py From docker-collectd-plugin with GNU General Public License v2.0 | 6 votes |
def init_callback(self): self.client = docker.Client( base_url=self.docker_url, version=DockerPlugin.MIN_DOCKER_API_VERSION) self.client.timeout = self.timeout # Check API version for stats endpoint support. try: version = self.client.version()['ApiVersion'] if StrictVersion(version) < \ StrictVersion(DockerPlugin.MIN_DOCKER_API_VERSION): raise Exception except: collectd.warning(('Docker daemon at {url} does not ' 'support container statistics!') .format(url=self.docker_url)) return False collectd.register_read(self.read_callback) collectd.info(('Collecting stats about Docker containers from {url} ' '(API version {version}; timeout: {timeout}s).') .format(url=self.docker_url, version=version, timeout=self.timeout)) return True
Example #16
Source File: calico_kubernetes.py From k8s-exec-plugin with Apache License 2.0 | 6 votes |
def __init__(self, config): self.pod_name = None self.namespace = None self.docker_id = None self.policy_parser = None # Get configuration from the given dictionary. logger.debug("Plugin running with config: %s", config) self.auth_token = config[KUBE_AUTH_TOKEN_VAR] self.api_root = config[KUBE_API_ROOT_VAR] self.client_certificate = config[KUBE_CLIENT_CERTIFICATE_VAR] self.client_certificate_key = config[KUBE_CLIENT_CERTIFICATE_KEY_VAR] self.ca_certificate = config[KUBE_CA_CERTIFICATE_VAR] self.calico_ipam = config[CALICO_IPAM_VAR].lower() self.default_policy = config[DEFAULT_POLICY_VAR].lower() self._datastore_client = IPAMClient() self._docker_client = Client( version=DOCKER_VERSION, base_url=os.getenv("DOCKER_HOST", "unix://var/run/docker.sock"))
Example #17
Source File: docker_backend.py From sen with MIT License | 6 votes |
def __init__(self): self._containers = None self._images = None # displayed images self._all_images = None # docker images -a self._df = None kwargs = {"version": "auto"} kwargs.update(docker.utils.kwargs_from_env(assert_hostname=False)) try: APIClientClass = docker.Client # 1.x except AttributeError: APIClientClass = docker.APIClient # 2.x try: self.client = APIClientClass(**kwargs) except docker.errors.DockerException as ex: raise TerminateApplication("can't establish connection to docker daemon: {0}".format(str(ex))) self.scratch_image = RootImage(self) # backend queries
Example #18
Source File: cmp.py From aioes with Apache License 2.0 | 6 votes |
def find_endpoint(): if os.environ.get("NO_DOCKER"): yield ('localhost', 9200) else: es_tag = os.environ.get("ES_VERSION", '2.4') cl = docker.Client(version='auto') cl.pull('elasticsearch:{}'.format(es_tag)) container = cl.create_container( image='elasticsearch:{}'.format(es_tag), name='aioes-test-server', ports=[9200], detach=True) cid = container['Id'] cl.start(container=cid) ins = cl.inspect_container(cid) try: yield (ins['NetworkSettings']['IPAddress'], 9200) finally: cl.kill(container=cid) cl.remove_container(cid)
Example #19
Source File: dockerclient.py From controller with MIT License | 5 votes |
def __init__(self): timeout = os.environ.get('DOCKER_CLIENT_TIMEOUT', docker.constants.DEFAULT_TIMEOUT_SECONDS) self.client = docker.Client(version='auto', timeout=timeout) self.registry = settings.REGISTRY_HOST + ':' + str(settings.REGISTRY_PORT)
Example #20
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _load_image_on_docker_host(self, base_url, build_file, image_name, image_version='latest'): """ Import container snapshot on the selected docker host. 'base_url': the url of docker host. 'build_file': the name of the build file in absolute path. 'image_name': the name of the image, containing registry address, user name and image name. 'image_version': the version of the image. Returns: 'token': the image token """ self._delete_image_on_docker_host(base_url, self.old_image_name, self.old_image_version) self._delete_image_on_docker_host(base_url, image_name, image_version) client = Client(base_url=base_url) try: with open(build_file, 'rb') as fileobj: client.load_image(fileobj) except Exception: logger.error('load image file on docker host %s failed.' % base_url) return None return self._tag_image_with_new_name(base_url, self.old_image_name, self.old_image_version, image_name, image_version)
Example #21
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _import_snapshot_on_docker_host(self, base_url, build_file, image_name, image_version='latest'): """ Import container snapshot on the selected docker host. 'base_url': the url of docker host. 'build_file': the name of the build file in absolute path. 'image_name': the name of the image, containing registry address, user name and image name. 'image_version': the version of the image. Returns: 'token': the image token """ self._delete_image_on_docker_host(base_url, image_name, image_version) client = Client(base_url=base_url) try: res_json = client.import_image_from_file(build_file, image_name, image_version) res = json.loads(res_json) except Exception: logger.error('import snapshot on docker host %s failed.' % base_url) return None return res.get('status', None)
Example #22
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _push_image_to_registry(self, base_url, image_name, image_version, image_token): """ Push image from docker host to private registry. Returns the sha256 digest of the image. """ image_complete_name = '%s:%s' %(image_name, image_version) if not self._is_image_on_docker_host(base_url, image_token): logger.error('There is no image called %s on docker host %s' % (image_complete_name, base_url)) return None client = Client(base_url=base_url) try: response = [res for res in client.push(image_complete_name, stream=True)] except Exception: logger.error('Communicate with %s failed.' % base_url) return None try: digest = fetch_digest_from_response(response[-1]) except Exception: logger.error('Parse the digest response error.') return None return digest
Example #23
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _is_image_on_docker_host(self, base_url, image_token): """ Check the image whether or not on docker host. """ client = Client(base_url=base_url) try: response = client.images(quiet=True) except Exception: logger.error("Connected %s failed." % base_url) return False if image_token not in response: return False return True
Example #24
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _get_image_token_on_docker_host(self, base_url, image_name, image_version): """ Given the image name and version, return the token of the image on the docker host. """ image_complete_name = '%s:%s' %(image_name, image_version) logger.debug(image_complete_name) client = Client(base_url=base_url) try: images = client.images() except Exception as e: logger.debug(e) logger.debug("Communicate with docker host {} failed.".format( base_url)) return None tokens = [image['Id'] for image in images if image_complete_name in image['RepoTags']] if not tokens: logger.info("The docker host {} has no image {}:{}".format(base_url, image_name, image_version)) return None return tokens[0]
Example #25
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _build_image_on_docker_host(self, base_url, build_file, dockerfile, image_name, image_version): """ Build image on the selected docker host by Dockerfile. 'base_url': the url of docker host. 'build_file': the name of the build file in absolute path. 'dockerfile': Dockerfile path in build_file. 'image_name': the name of the image, containing registry address, user name and image name. 'image_version': the version of the image. Returns: 'token': the image token """ self._delete_image_on_docker_host(base_url, image_name, image_version) client = Client(base_url=base_url) fileobj = open(build_file, 'rb') image_complete_name = '%s:%s' % (image_name, image_version) try: response = [line for line in client.build( fileobj=fileobj, custom_context=True, dockerfile=dockerfile, rm=True, tag=image_complete_name)] except APIError as error: logger.debug(error) logger.error('Cannot locate specified Dockerfile: %s.' % (self.dockerfile)) fileobj.close() return None except Exception as error: logger.debug(error) logger.error('Build image %s failed.' % image_complete_name) fileobj.close() return None fileobj.close() return self._get_image_token(base_url, image_complete_name)
Example #26
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _get_image_token(self, base_url, image_complete_name): """ """ client = Client(base_url=base_url) try: token = client.inspect_image(image_complete_name).get('Id', None) except Exception: logger.error('Can\'t get the token of image %s on docker host %s' % (image_complete_name, base_url)) return None return token
Example #27
Source File: image.py From hummer with Apache License 2.0 | 5 votes |
def _get_image_token_on_docker_host(self, base_url, image_name, image_version): """ Given the image name and version, return the token of the image on the docker host. """ image_complete_name = '%s:%s' %(image_name, image_version) logger.debug(image_complete_name) client = Client(base_url=base_url) try: images = client.images() except Exception as e: logger.debug(e) logger.debug("Communicate with docker host {} failed.".format( base_url)) return None tokens = [image['Id'] for image in images if image_complete_name in image['RepoTags']] if not tokens: logger.info("The docker host {} has no image {}:{}".format(base_url, image_name, image_version)) return None return tokens[0]
Example #28
Source File: conftest.py From salt-toaster with MIT License | 5 votes |
def docker_client(): client = Client(base_url='unix://var/run/docker.sock', timeout=180) return client
Example #29
Source File: conftest.py From docker-registry-client with Apache License 2.0 | 5 votes |
def docker_client(): client_cfg = docker_utils.kwargs_from_env() return docker.Client(version='1.21', **client_cfg)
Example #30
Source File: dockerutils.py From agentless-system-crawler with Apache License 2.0 | 5 votes |
def exec_docker_history(long_id): try: client = docker.Client(base_url='unix://var/run/docker.sock', version='auto') image = client.inspect_container(long_id)['Image'] history = client.history(image) return history except docker.errors.DockerException as e: logger.warning(str(e)) raise DockerutilsException('Failed to exec dockerhistory')