Python으로 실행 중인 Docker 컨테이너인지 확인하는 방법

4342 단어 pythondocker
이를 위해 python의 subprocess 모듈을 사용할 수 있지만 docker python-sdk을 사용하는 것이 더 편리한 방법입니다.
pip를 통해 설치할 수 있습니다.

$ pip install docker


그런 다음 아래와 같은 모듈을 사용할 수 있습니다.

# 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)


실행하면 다음을 얻을 수 있습니다.

$ python check_container.py
True


존재하지 않는 컨테이너 이름과 함께 사용하면 다음이 제공됩니다.

$ python check_container.py
Check container name!
No such container: redislocal
None


모두 완료되었습니다!

좋은 웹페이지 즐겨찾기