当通过 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
命令。
我想通过 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
命令。