首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何列出所有容器的docker日志大小?

要列出所有容器的Docker日志大小,可以通过以下步骤:

  1. 使用Docker命令行界面或Docker API,获取所有运行中的容器ID列表。
  2. 遍历容器ID列表,针对每个容器执行以下操作:
  3. a. 使用Docker命令行界面或Docker API,获取容器的日志文件路径。一般情况下,Docker会将容器的日志输出到/var/lib/docker/containers/<容器ID>/<容器ID>-json.log文件中。
  4. b. 使用文件系统命令(如Linux的du命令)获取日志文件的大小。
  5. c. 将容器ID及其对应的日志文件大小记录下来。
  6. 输出所有容器的ID和日志文件大小。

以下是示例代码,演示如何使用Python和Docker SDK来实现这个功能:

代码语言:txt
复制
import docker
import os

def get_container_logs_size():
    client = docker.from_env()
    
    # 获取所有容器
    containers = client.containers.list()

    # 存储容器ID及日志文件大小的字典
    logs_sizes = {}

    for container in containers:
        container_id = container.id
        
        # 获取容器的日志文件路径
        log_path = f"/var/lib/docker/containers/{container_id}/{container_id}-json.log"
        
        # 获取日志文件大小
        log_size = os.path.getsize(log_path)
        
        # 保存容器ID及日志文件大小
        logs_sizes[container_id] = log_size

    return logs_sizes

# 获取容器的日志文件大小
logs_sizes = get_container_logs_size()

# 打印容器ID及日志文件大小
for container_id, log_size in logs_sizes.items():
    print(f"Container ID: {container_id}, Log Size: {log_size} bytes")

请注意,上述代码中使用的日志文件路径/var/lib/docker/containers/<容器ID>/<容器ID>-json.log是默认情况下Docker将容器日志输出的路径,如果您的Docker配置不同,可能需要相应地修改代码中的日志文件路径。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker容器日志路径及如何收集

日志分两类,一类是 Docker 引擎日志;另一类是 容器日志。...不同系统位置都不一样,SO上有人总结了一份列表,我修正了一下,可以参考: 系统 日志位置 Ubuntu(14.04) /var/log/upstart/docker.log Ubuntu(16.04...8 journalctl -u docker.service Boot2Docker /var/log/docker.log 容器日志 容器日志 则可以通过 docker logs 命令来访问,...如果深究其日志位置,每个容器日志默认都会以 json-file 格式存储于 /var/lib/docker/containers//-json.log 下,不过并不建议去这里直接读取内容...关于日志收集,Docker 内置了很多日志驱动,可以通过类似于 fluentd, syslog 这类服务收集日志。无论是 Docker 引擎,还是容器,都可以使用日志驱动。

2.1K20

Docker容器日志处理

Docker有很多日志插件,默认使用 json-file,只有使用json-file时,sudo docker logs -f 才可以显示,输入以下命令查看docker日志插件: $ sudo docker...info | grep Logging 这里先说明一下,当容器运行时,docker会在宿主机上创建一个该容器相关文件,然后将容器产生日志转存到该文件下。...我们都知道docker logs -f会将所有对应服务日志输出到终端,无论服务部署在哪个节点上,那么我现在提出一个问题,是否每个节点对应容器文件,都会保存该服务完整日志备份,还是只保存该节点服务对应容器产生日志...因为这个问题涉及到每个节点如果都用filebeat监听宿主机容器日志文件,那么每个节点容器日志都是一个完整备份,日志就会重复,所以答案是每个节点只保留该节点上容器日志docker logs -...中,不然json-file日志驱动不会收集到容器里面输出日志,sudo docker logs -f就在终端显示不了容器日志了,在Dockerfile中需加入以下命令: RUN ln -sf /dev

1.4K30
  • Docker容器日志处理

    Docker有很多日志插件,默认使用 json-file,只有使用json-file时,sudo docker logs -f 才可以显示,输入以下命令查看docker日志插件: $ sudo docker...info | grep Logging 这里先说明一下,当容器运行时,docker会在宿主机上创建一个该容器相关文件,然后将容器产生日志转存到该文件下。...我们都知道docker logs -f会将所有对应服务日志输出到终端,无论服务部署在哪个节点上,那么我现在提出一个问题,是否每个节点对应容器文件,都会保存该服务完整日志备份,还是只保存该节点服务对应容器产生日志...因为这个问题涉及到每个节点如果都用filebeat监听宿主机容器日志文件,那么每个节点容器日志都是一个完整备份,日志就会重复,所以答案是每个节点只保留该节点上容器日志docker logs -...中,不然json-file日志驱动不会收集到容器里面输出日志,sudo docker logs -f就在终端显示不了容器日志了,在Dockerfile中需加入以下命令: RUN ln -sf /dev

    2.6K40

    如何使用 systemctl 命令列出 Linux 中所有服务

    如何使用 systemctl 命令列出 Linux 中所有服务systemctl 命令是 Linux 中用于管理系统和服务配置工具。...您可以使用 systemctl 命令来启动、停止、重新启动、启用、禁用和检查服务状态。您还可以使用 systemctl 命令来列出所有服务。...参考文章:https://www.howtouselinux.com/post/list-all-the-services-with-systemctl-command-in-linux要列出所有服务,...您可以使用以下命令:systemctl list-units --type=service此命令将列出所有服务名称、状态和描述。...您还可以使用以下命令来列出所有正在运行服务:systemctl list-units --type=service --state=active此命令将列出所有正在运行服务名称、状态和描述。

    2.1K11

    Docker支持更深入容器日志分析

    应用容器平台Docker本周基于各个公司对容器化应用程序分发支持全面性程度,宣布了针对容器应用程序日志管理生态系统技术合作伙伴(ETP: Ecosystem Technology Partners,...DockerETP计划是为了确保日志管理方案不但集成在Docker环境中,而且可以扩展应用程序跨平台可移植性。...分布式应用程序日志流可以被收集分析,从而提供给操作团队帮助深入应用程序内部健康状况以及如何修复问题。操作团队需要通过各种不同工具来收集和分析日志数据,从而得到应用程序可用性和性能精确反映。...比如Amazon CloudWatch,直接集成于Docker Engine日志驱动(1.6或以上版本),以及其他提供容器代理来允许Docker API调用外部收集系统。...该整合也将允许许多企业将Docker日志集成到它们当前日志方案中,降低它们进行容器化和微服务化体系架构尝试风险。

    775100

    如何在 Linux 中列出 Systemd 下所有正在运行服务

    在本指南[1]中,我们将演示如何在 Linux 中列出 systemd 下所有正在运行服务。...在 Linux 中列出 SystemD 下正在运行服务 当您运行不带任何参数 systemctl 命令时,它将显示所有加载 systemd 单元列表(阅读 systemd 文档以获取有关 systemd...systemctl 要列出系统上所有已加载服务(无论是活动、正在运行、退出还是失败,请使用 list-units 子命令和带有服务值 --type 开关。...# systemctl list-units --type=service OR # systemctl --type=service 要列出所有已加载但处于活动状态服务,包括正在运行和已退出服务...此外,如果您服务器正在运行防火墙服务,该服务控制如何阻止或允许进出所选服务或端口流量,您可以使用 firewall-cmd 或 ufw 命令列出已在防火墙中打开服务或端口(取决于您使用 Linux

    28120

    Docker(34)- 如何修改 docker 容器目录映射

    删除原有容器,重新创建新容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 9999:8080 -i --name tomcat7 -v /usr...,创建新容器,又得重新配置相关东西了 修改容器配置文件(重点) 暂停 Docker 服务 systemctl stop docker 进入 Docker 容器配置文件目录下 cd /var/lib/docker...服务,会影响其他正常运行 Docker 容器 使用 docker commit 命令 停止 Docker 容器 docker stop tomcat7 使用 commit 构建新镜像 docker.../local/tomcat/webapps tomcat:7 修改新容器名字 如果新容器想用回旧容器名字,需要先删了旧容器,再改名 docker rm -f tomcat7 docker rename...优点 无需停止 Docker 服务,不影响其他正在运行容器容器有的配置和数据,新容器也会有,不会造成数据或配置丢失,对新旧容器都没有任何影响 缺点 需要生成新镜像和容器,管理镜像和容器时间成本会上升

    12.1K30

    如何修改Docker容器目录映射

    删除原有容器,重新创建新容器 优点 简单粗暴,在测试环境用更多 缺点 如果是数据库、服务器相关容器,创建新容器,又得重新配置相关东西了 2....修改容器配置文件(重点) 暂停Docker服务 systemctl stop docker 进入Docker容器配置文件目录下 cd /var/lib/docker/containers/ls 进入某个容器配置文件目录下...输入 / ,搜索映射目录(webapps) 也可以找到 MountPoints 若需要重新指定主机上映射目录,则改绿圈两个地方 若需要重新指定容器映射目录,则改蓝圈两个地方 MountPoints...重新启动Docker服务 systemctl restart docker 启动容器 docker start 容器ID或者名字 进入到目录查看是否映射修改成功 cd /usr/local/tomcat.../webappsls 优点 直接操作配置文件没有副作用,算简单 缺点 需要暂停 Docker 服务,会影响其他正常运行 Docker 容器

    6.5K20

    如何修复无法启动docker容器

    如何修复无法启动docker容器 背景: 测试服务器上使用docker搭建了个elasticsearch服务集群,由于需要为es安装中文分词插件,不料安装姿势有问题,导致无法启动了。...,把这个问题容器docker commit提交到一个新镜像,然后用docker run -it 基于新镜像运行一个新容器进去改变(修复)配置文件。...再通过新容器再提交一个新镜像,然后在基于新镜像重新启动容器(同最初容器)。这个方法是可行,但问题是步骤多,而且提交了新镜像,对于后续维护增加了复杂性。...~]# docker rm # 删除无法启动容器,反正也用不了 #查看刚建立新镜像 [root@study-01 ~]# docker images REPOSITORY...study-01 ~]# docker commit : #创建修复后容器 [root@study-01 ~]# docker run

    3.9K20

    如何拷贝Docker容器文件?

    开始之前 某个项目容器需要添加 wkhtmltopdf 软件包用于处理html与pdf文件转换,由于默认apt源服务器在国外,使用apt 安装 wkhtmltopdf 时下载速度只有感人几kb/s。...环境描述 容器镜像: php:5.6-fpm 容器系统: debian 8 (jessie) 配置文件: /etc/apt/sources.list Docker主机: Ubuntu Server 16.04...备份容器文件 docker cp crm-test:/etc/apt/sources.list /tmp/sources.list.bak 这个条命令将把容器 sources.list文件,拷贝到宿主机上...替换容器 sources.list文件 docker cp sources.list crm-test:/etc/apt/sources.list 相反这个条命令将把宿主机上文件拷贝到容器内 4....docker cp子命令可以用来在容器与宿主机之间拷贝文件。

    4.8K10

    Docker容器实战(六) - Docker如何实现隔离

    尽管可使用Seccomp等技术,过滤和甄别容器内部发起所有系统调用来进行安全加固,但这就多了一层对系统调用过滤,一定会拖累容器性能。...以PID Namespace为例: 虽然容器第1号进程在“障眼法”干扰下只能看到容器情况,但在宿主机,它作为第100号进程与其他所有进程之间依然是平等竞争关系。...这意味着,虽然第100号进程表面上被隔离,但它所能够使用到资源(比如CPU、内存),可随时被宿主机其他进程(或容器)占用。当然,该100号进程也可能自己就把所有资源吃光。...CPU核和对应内存节点 memory,为进程设定内存使用限制 5 Docker如何限制?...由于一个容器本质就是一个进程,用户应用进程实际上就是容器里PID=1进程,也是其他后续创建所有进程父进程。

    1.2K20

    Docker(33)- 如何修改 docker 容器端口映射

    当前是访问 9999 端口 删除原有容器,重新创建新容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 8888:8080 -i --name tomcat7...tomcat:7 重新指定需要映射端口 优点 简单粗暴,在测试环境用更多 缺点 如果是数据库、服务器相关容器,创建新容器,又得重新配置相关东西了 修改容器配置文件(重点) 暂停 Docker...里端口,但实操了一遍并不需要 config.v2.json 优点 直接操作配置文件没有副作用,算简单 缺点 需要暂停 Docker 服务,会影响其他正常运行 Docker 容器 使用 docker...修改新容器名字 如果新容器想用回旧容器名字,需要先删了旧容器,再改名 docker rm -f tomcat7 docker rename tomcat77 tomcat7 docker ps ?...优点 无需停止 Docker 服务,不影响其他正在运行容器容器有的配置和数据,新容器也会有,不会造成数据或配置丢失,对新旧容器都没有任何影响 缺点 需要生成新镜像和容器,管理镜像和容器时间成本会上升

    1.5K10

    所有PHP-FPM容器构建单独Nginx Docker镜像

    作者决定构建一个单独NGinx Docker镜像,它可以使用PHP-FPM主机名作为环境变量并运行单独配置文件,而没有为每个容器构建单独NGinx镜像。...Docker文档中有少许几个章节讨论如何使用envsubst来完成该工作,但不幸是,在其NGinx配置文件中,这种方法不奏效。 ..."PHP容器 docker run --name php-fpm-api -v $(pwd):/var/www php:fpm # 允许链接到PHP-FPM容器NGinx容器 docker run...现在所有的PHP-FPM容器都使用了它们自己Docker镜像实例,这样在升级NGinx,改变权限或做某些调整时,就变得非常轻松了。 ...所有的代码都在Github上,如果读者看到任何问题或有改进建议,可以直接创建一个问题单。如果有疑问或任何Docker相关,可以在Twitter上找到我继续探讨。

    53720
    领券