# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.conf import settings from docker import DockerClient from docker.errors import DockerException, NotFound, APIError ''' ''' def get_docker_client(): try: return DockerClient(base_url='unix:/%s' % settings.DOCKER_SOCK_DIR) except DockerException: return None ''' ''' def get_all_containers(): client = get_docker_client() containers = [] if not client: return containers for container in client.containers.list(): containers.append({ 'id': container.id, 'short_id': container.short_id, 'name': container.name, 'image': container.image, 'labels': container.labels, 'status': container.status }) return containers ''' ''' def get_all_images(): client = get_docker_client() images = [] if not client: return images for image in client.images.list(): images.append({ 'id': image.id, 'short_id': image.short_id, 'tags': image.tags }) ''' ''' def start_container(id=None): if not id: return False client = get_docker_client() if not client: return False try: container = client.containers.get(id) container.start() except NotFound: return False except APIError: return ''' ''' def stop_container(id=None): if not id: return False client = get_docker_client() if not client: return False try: container = client.containers.get(id) container.stop() except NotFound: return False except APIError: return