gpt4 book ai didi

memory - Docker容器的CPU和内存利用率

转载 作者:行者123 更新时间:2023-12-02 18:55:07 24 4
gpt4 key购买 nike

我的Jenkins作业中有一个运行此命令的Docker容器:

docker run --name="mydoc" reportgeneration:1.0 start=$START end=$END config=$myfile

这很好。该镜像是从DockerFile创建的,该文件正在使用 ENTRYPOINT执行shell脚本。

现在,我想知道此容器已使用了多少CPU和内存。我正在使用Jenkins作业,在“执行shell命令”中,我正在运行上述Docker run命令。

我看到了有关“docker stats”命令的信息。它在我的Ubuntu机器上运行得很好。但是我希望它通过Jenkins运行,因为我的容器是通过Jenkins控制台运行的。因此,这里遵循我的限制。
  • 我不知道是否有任何方法可以停止docker stats命令。在Ubuntu命令行中,我们按“ctrl + c”将其停止。我将如何在 Jenkins 做到这一点?
  • 即使我想出一种停止docker stats的方法,一旦执行了“docker run”命令,该容器也不会处于 Activity 状态并退出。对于退出的容器,CPU和内存利用率将为零。

  • docker run 'image' 

    docker stats container id/name

    在上面两行中, docker stats命令将仅获得一个退出的容器,我认为 docker stats甚至无法与Jenkins控制台一起使用,因为它无法停止。

    有什么办法可以通过Jenkins控制台更好地获取容器的资源利用率(CPU,内存)?

    最佳答案

    建议不要以交互方式运行docker stats,而要使用带有如下循环的shell脚本:

    #!/bin/sh

    # First, start the container
    CONTAINER_ID=$(docker run -d ...)

    # Then start watching that it's running (with inspect)
    while [ "$(docker inspect -f {{.State.Running}} $CONTAINER_ID 2>/dev/null)" = "true" ]; do
    # And while it's running, check stats
    docker stats --no-stream $CONTAINER_ID
    sleep 1
    done

    # When the script reaches this point, the container had stopped.
    # For example, let's clean it up (assuming you haven't used --rm in run).
    docker rm $CONTAINER_ID

    是否使用 checks whenever the container is running条件,并且 docker stats --no-stream一次输出统计信息,然后退出,使其适合非交互式使用。

    我相信您可以使用此类shell脚本文件的变体 as a build step(显然,已更新为执行有用的操作,而不仅仅是启动容器并查看其统计信息)。

    但是,如果您需要/想要/想要停止一个交互式过程,则 kill是您要查找的命令。在终端 just sends a SIGINT中按Ctrl-C进入该进程。

    当然,您需要知道PID。我不确定Jenkins,但是如果您刚从带有 child-process &(例如 docker stats &)的shell脚本启动了子进程,则其PID将为 in the $! variable。或者,您可以尝试使用 pidofps命令来计算它,但是在并发作业的情况下这可能很容易出错(除非它们都是孤立的)。

    在这里,我假设您的Jenkins工作是执行实际工作的Shell脚本。如果您的设置不同(例如,如果您使用某些插件,因此Jenkins直接与Docker对话),则情况可能会有所不同并且更加复杂。

    关于memory - Docker容器的CPU和内存利用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659527/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com