파이썬
[파이썬] 도커 컨테이너 정보 출력
IntegerString
2023. 4. 5. 17:37
import docker
필요한 라이브러리 임포트 (https://docker-py.readthedocs.io/en/stable)
def add_unit(mem: float) -> str:
if mem > 1024**3:
mem = round(mem / 1024**3, 2)
mem = f"{mem}GiB"
elif mem > 1024**2:
mem = round(mem / 1024**2, 2)
mem = f"{mem}MiB"
elif mem > 1024:
mem = round(mem / 1024, 2)
mem = f"{mem}KiB"
else:
mem = round(mem, 2)
mem = f"{mem}Byte"
return mem
데이터 단위를 붙여주기 위한 함수
client = docker.DockerClient(base_url='unix://var/run/docker.sock')
for container in client.containers.list():
container_name = container.name
is_running = container.attrs["State"]["Running"]
memory_stats = container.stats(stream=False)["memory_stats"]
now_mem = add_unit(memory_stats["usage"])
peak_mem = add_unit(memory_stats["max_usage"])
mem_limit = add_unit(memory_stats["limit"])
print(
f"Name: {container_name}\nRunning: {is_running}\n"
f"Memory(now): {now_mem} / {mem_limit}\nMemory(peak): {peak_mem} / {mem_limit}\n"
)