import subprocess,json,pathlib def run(*a):return subprocess.check_output(a,text=True,stderr=subprocess.STDOUT) print(run('nvidia-smi','--query-compute-apps=gpu_uuid,pid,process_name,used_gpu_memory','--format=csv,noheader')) for name in run('docker','ps','--format','{{.Names}}').splitlines(): d=json.loads(run('docker','inspect',name))[0] req=d['HostConfig'].get('DeviceRequests') if req: print(json.dumps({'name':name,'devices':req,'state':d['State']['Status'],'image':d['Config']['Image']},ensure_ascii=False)) for name in ('comfyui','h3-caption-gpu3-canary-8a5f'): d=json.loads(run('docker','inspect',name))[0] print(name,'security',{'user':d['Config']['User'],'readOnly':d['HostConfig']['ReadonlyRootfs'],'privileged':d['HostConfig']['Privileged'],'capAdd':d['HostConfig']['CapAdd'],'network':list(d['NetworkSettings']['Networks'])}) if name.startswith('h3-caption'): for m in d['Mounts']: if m['Destination']=='/run/h3-control': print('control',json.loads((pathlib.Path(m['Source'])/'control.json').read_text()))