50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
|
import docker
|
||
|
|
||
|
def launch_docker_container(image, name, ports=None, environment=None):
|
||
|
client = docker.from_env()
|
||
|
try:
|
||
|
container = client.containers.run(
|
||
|
image,
|
||
|
name=name,
|
||
|
ports=ports,
|
||
|
environment=environment,
|
||
|
detach=True
|
||
|
)
|
||
|
return f"Container launched successfully: {container.id}"
|
||
|
except docker.errors.APIError as e:
|
||
|
return f"API Error: {e}"
|
||
|
except Exception as e:
|
||
|
return f"Error: {e}"
|
||
|
|
||
|
def stop_docker_container(name):
|
||
|
client = docker.from_env()
|
||
|
try:
|
||
|
container = client.containers.get(name)
|
||
|
container.stop()
|
||
|
return f"Container stopped: {name}"
|
||
|
except docker.errors.NotFound:
|
||
|
return f"Container not found: {name}"
|
||
|
except Exception as e:
|
||
|
return f"Error stopping container {name}: {e}"
|
||
|
|
||
|
def remove_docker_container(name):
|
||
|
client = docker.from_env()
|
||
|
try:
|
||
|
container = client.containers.get(name)
|
||
|
container.remove(force=True) # Force removal if the container is running
|
||
|
return f"Container removed: {name}"
|
||
|
except docker.errors.NotFound:
|
||
|
return f"Container not found: {name}"
|
||
|
except Exception as e:
|
||
|
return f"Error removing container {name}: {e}"
|
||
|
|
||
|
def is_container_running(name):
|
||
|
client = docker.from_env()
|
||
|
try:
|
||
|
container = client.containers.get(name)
|
||
|
return container.status == "running"
|
||
|
except docker.errors.NotFound:
|
||
|
return False
|
||
|
except Exception as e:
|
||
|
return f"Error checking container {name}: {e}"
|