-
Notifications
You must be signed in to change notification settings - Fork 0
/
delete-container-image.py
70 lines (58 loc) · 2.87 KB
/
delete-container-image.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import subprocess
def mostrar_menu_opciones(opciones):
subprocess.run('clear', shell=True) # Limpia la pantalla
print("Selecciona una opción:")
for i, opcion in enumerate(opciones):
print(f"{i + 1}. {opcion}")
print("0. Salir")
def listar_contenedores():
output = subprocess.check_output(['sudo', 'docker', 'ps', '--format', '{{.ID}}\t{{.Image}}\t{{.Names}}'], text=True)
contenedores = [line.split('\t') for line in output.strip().split('\n')]
print("Contenedores disponibles:")
for i, (id_contenedor, imagen, nombre) in enumerate(contenedores):
print(f"{i + 1}. ID: {id_contenedor}, Imagen: {imagen}, Nombre: {nombre}")
return contenedores
def eliminar_contenedor(id_contenedor):
subprocess.run(['sudo', 'docker', 'rm', '-f', id_contenedor])
def listar_imagenes():
output = subprocess.check_output(['sudo', 'docker', 'image', 'list', '--format', '{{.ID}}\t{{.Repository}}:{{.Tag}}\t{{.Size}}'], text=True)
imagenes = [line.split('\t') for line in output.strip().split('\n')]
print("Imágenes disponibles:")
for i, (id_imagen, nombre, tamano) in enumerate(imagenes):
print(f"{i + 1}. ID: {id_imagen}, Nombre: {nombre}, Tamaño: {tamano}")
return imagenes
def eliminar_imagen(id_imagen):
subprocess.run(['sudo', 'docker', 'rmi', '-f', id_imagen])
def limpiar_docker():
subprocess.run(['sudo', 'docker', 'image', 'prune', '-f'])
subprocess.run(['sudo', 'docker', 'container', 'prune', '-f'])
subprocess.run(['sudo', 'docker', 'builder', 'prune', '-f'])
opciones_principales = ["Listar contenedores", "Eliminar contenedor por ID", "Listar imágenes", "Eliminar imagen por ID", "Limpiar Docker"]
while True:
mostrar_menu_opciones(opciones_principales)
opcion = input("Selecciona una opción: ")
if opcion == '0':
break
elif opcion == '1':
listar_contenedores()
elif opcion == '2':
contenedores = listar_contenedores()
opcion_contenedor = input("Selecciona el número del contenedor que deseas eliminar: ")
if opcion_contenedor.isdigit() and 1 <= int(opcion_contenedor) <= len(contenedores):
eliminar_contenedor(contenedores[int(opcion_contenedor) - 1][0])
else:
print("Opción no válida. Introduce un número válido.")
elif opcion == '3':
listar_imagenes()
elif opcion == '4':
imagenes = listar_imagenes()
opcion_imagen = input("Selecciona el número de la imagen que deseas eliminar: ")
if opcion_imagen.isdigit() and 1 <= int(opcion_imagen) <= len(imagenes):
eliminar_imagen(imagenes[int(opcion_imagen) - 1][0])
else:
print("Opción no válida. Introduce un número válido.")
elif opcion == '5':
limpiar_docker()
else:
print("Opción no válida. Por favor, selecciona una opción válida.")
print("¡Hasta luego!")