DEV Community

Serhat Teker
Serhat Teker

Posted on • Originally published at tech.serhatteker.com on

How to Check if a Docker Container Running with Python

We can use python's subprocess module for this, however using docker python-sdk would be more convenient way.

You can install it via pip:

$ pip install docker
Enter fullscreen mode Exit fullscreen mode

Then we can use a module like below:

# check_container.py
from typing import Optional

import docker


def is_container_running(container_name: str) -> Optional[bool]:
    """Verify the status of a container by it's name

    :param container_name: the name of the container
    :return: boolean or None
    """
    RUNNING = "running"
    # Connect to Docker using the default socket or the configuration
    # in your environment
    docker_client = docker.from_env()
    # Or give configuration
    # docker_socket = "unix://var/run/docker.sock"
    # docker_client = docker.DockerClient(docker_socket)

    try:
        container = docker_client.containers.get(container_name)
    except docker.errors.NotFound as exc:
        print(f"Check container name!\n{exc.explanation}")
    else:
        container_state = container.attrs["State"]
        return container_state["Status"] == RUNNING


if __name__ == "__main__":
    container_name = "localredis"
    result = is_container_running(container_name)
    print(result)
Enter fullscreen mode Exit fullscreen mode

After you run you will get:

$ python check_container.py
True
Enter fullscreen mode Exit fullscreen mode

If you use it with not-existing container name it will give:

$ python check_container.py
Check container name!
No such container: redislocal
None
Enter fullscreen mode Exit fullscreen mode

All done!

Discussion (0)