container-lifecycle-manager

메인 인덱스 | bob-yamong

레포지토리 정보

이름: container-lifecycle-manager
주요 목적: Docker와 containerd 런타임의 컨테이너 정보를 모으고, cgroup과 namespace 변화를 함께 보는 CLI 도구입니다.

주요 기술 스택

  • Python
  • Docker SDK
  • pyinotify
  • Linux namespaces
  • cgroups

아키텍처

  • src/main.pylist/info/quit를 받는 인터랙티브 CLI입니다.
  • ContainerLifecycleManager는 시작 시 컨테이너 정보를 읽고 cgroup 감시를 켠 뒤 런타임 이벤트를 반영합니다.
  • monitor_runtime_events()는 실제로 docker.from_env().events()를 순회합니다.
  • container_info_collector.py는 Docker와 containerd 런타임을 탐지하지만, get_containerd_info()는 아직 TODO 상태로 {}를 반환합니다.
  • docker_runtime.py는 cgroup과 namespace 정보를 Docker API와 /proc에서 읽습니다.
  • cgroup_monitor.pypyinotify/sys/fs/cgroup을 감시하지만, 생성/삭제 처리 로직은 TODO 코멘트만 남아 있습니다.
  • README 기준으로 실행에는 root 권한이 필요합니다.

주요 파일

  1. src/main.py
  2. src/container_lifecycle_manager.py
  3. src/runtimes/base.py
  4. src/runtimes/containerd_runtime.py
  5. src/runtimes/docker_runtime.py
  6. src/utils/cgroup_monitor.py
  7. src/utils/container_info_collector.py

포트폴리오 메모

  • Docker 런타임에 대해서는 실제로 동작하는 정보 수집과 이벤트 감시가 들어 있습니다.
  • containerd 경로는 추상화는 있으나 구현이 아직 미완성입니다.
  • cgroup 감시와 namespace 수집을 함께 다루는 시스템 도구 성격이 분명합니다.