Skip to content

Instantly share code, notes, and snippets.

@LiamJolly
Created October 28, 2021 07:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LiamJolly/4ddf22138b330361d32f1c23344045a5 to your computer and use it in GitHub Desktop.
Save LiamJolly/4ddf22138b330361d32f1c23344045a5 to your computer and use it in GitHub Desktop.
import sys
from typing import List
import docker
from docker.errors import NotFound
from docker.models.containers import Container
class DockerManager:
def __init__(self):
self.client = docker.client.from_env()
def list_containers(self) -> List[Container]:
return self.client.containers.list(all=True)
def list_container_names(self) -> List[str]:
container_names = []
container: Container
for container in self.list_containers():
container_names.append(container.name)
return container_names
def get_container_by_name(self, name) -> Container:
return self.client.containers.get(name)
def remove_container(self, name):
container: Container = self.get_container_by_name(name)
container.remove()
if __name__ == "__main__":
docker_manager = DockerManager()
print("The following containers are running:")
for container_name in docker_manager.list_container_names():
print(container_name)
container_name = input("Please type the name of the container you wish to delete:")
try:
if not container_name:
sys.exit()
docker_manager.remove_container(container_name)
print(f"Removed {container_name}")
print("The following containers are running:")
for container_name in docker_manager.list_container_names():
print(container_name)
except NotFound:
print(f"Container {container_name} does not exist")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment