当通过 docker-compose 调用时如何使用 valgrind 检查 docker 的内存泄漏

How use valgrind to check memory leak of docker when called via docker-compose

我想通过 docker-compose 和一个 YAML 文件检查多个容器 运行 的潜在内存泄漏。

当使用以下命令调用 valgrind 时:

valgrind --log-file=/tmp/debug.log \ --trace-children=yes \ --track-origins=yes docker-compose -f docker-compose.yml up --build -d docker-compose 完成容器设置时,valgrind 停止跟踪;它不会跟踪 docker-compose 执行的 docker 调用。

有没有办法让valgrind在通过docker-compose调用时继续检查docker的内存activity?

谢谢

我认为这是不可能的,因为 docker 调用(如 run)实际上是作为 命令 通过套接字发送的(/var/run/docker.sock).然后,那些 命令 实际上是由 docker 守护程序 运行 执行的,这是一个不同的进程,当您 运行 valgrind ....

你可以做的是在容器内部安装 valgrind 并确保它启动主进程,方法是替换 CMD 命令。