def createContainer(self, portsBindings, binds, ports, command, dns, env): if binds == None: binds = {} if portsBindings == None: portsBindings = {} if dns == None: dns = [] if env == None: env = [] sysliteInstance = util.getInstanceName() env.append('SYSLITE_NAME='+str(self.container).lower()) dnsport = self.dockerAPI.client.create_host_config( port_bindings=portsBindings, binds=binds, dns=dns ) container = self.dockerAPI.client.create_container( detach=True, ports=ports, environment=env, name=self.container, host_config=dnsport, image=self.image, command=command, labels={ "Syslite_Managed_By":sysliteInstance, "Syslite_Name":self.container, "Syslite_Tab":str(self.tab) } ).get('Id') return container
def terminate_containers(self, data): sysliteInstance = util.getInstanceName() for container in self.dockerAPI.client.containers(filters={'status':'running'}): if 'Syslite_Managed_By' in container['Labels']: Id = container['Id'] instance = container['Labels']['Syslite_Managed_By'] if instance == sysliteInstance: self.socket.log('Stopping container {0}...'.format(Id)) self.dockerAPI.client.stop(Id) self.socket.log('Environment shutdown complete')