linux工具包容器

linux工具包容器,linux,docker,containers,perf,Linux,Docker,Containers,Perf,我是Docker的新手,我正在尝试使用perf检查一些东西的性能。Perf没有和我正在使用的图像一起提供,所以我去安装了它。 我曾经 这不起作用,因为perf是另一个包的一部分。 然后我试着 apt-get install -y linux-tools-common linux-tools-generic linux-tools-`uname -r` 导致 E: Unable to locate package linux-tools-common E: Unable to locate pa

我是Docker的新手,我正在尝试使用perf检查一些东西的性能。Perf没有和我正在使用的图像一起提供,所以我去安装了它。 我曾经

这不起作用,因为perf是另一个包的一部分。 然后我试着

apt-get install -y linux-tools-common linux-tools-generic linux-tools-`uname -r`
导致

E: Unable to locate package linux-tools-common
E: Unable to locate package linux-tools-generic
E: Unable to locate package linux-tools-3.10.0-862.3.3.el7.x86_64
E: Couldn't find any package by glob 'linux-tools-3.10.0-862.3.3.el7.x86_64'
E: Couldn't find any package by regex 'linux-tools-3.10.0-862.3.3.el7.x86_64'

关于我应该尝试什么,有什么建议吗?

我假设您的容器中有一个相当新的Linux,主机上有一个旧的

请注意,perf必须与Linux内核的版本完全相同。与集装箱化一起使用的是主机系统的内核

当您在容器中安装通用perf包时,包管理器将检索(主机)内核的版本,并尝试使用相同的版本安装perf包。由于容器中有较新版本的Linux发行版,因此必需的较旧perf包不再是其包存储库的一部分,从而导致出现错误消息

有多种解决方案: a) 将主机Linux内核更新为Linux发行版支持的容器, b) 降级Linux发行版中的容器,或
c) 在容器中提供必要的perf包。这可能很棘手,您可能会搞砸容器的包管理器。但它只是一个容器;)。您可以使用
uname-a

找出必要的版本,在Debian 10上帮助我的是:

apt install linux-perf

linux-tools-generic
应该引入当前内核的版本,其中包括
perf
。如果您没有正确设置
源。list
,它将不起作用。此外,这不是一个真正的编程问题,而是一个系统管理问题。可能属于服务器故障,不是这样。投票迁移(与投票关闭不同,与主题无关:应该在其他地方询问,顺便说一句)或否,只有一个选项可以迁移到超级用户,而不是服务器故障。正在运行哪个docker映像?您如何运行docker容器?顺便说一句,性能差异非常小,请参见。@KamilCuk:我假设OP只是想在运行docker映像的服务器上使用docker配置来评测软件。无论您是否与docker映像外部的同一台机器进行比较,这都很有用。我希望能够在容器中运行perf,以查看性能指标,并与裸机指标进行比较@PeterCordes我应该如何正确设置sources.list?这不是我碰过的东西。另外,我会记住下一次发布位置,谢谢那个指针。我实际上在我的主机上运行了一个更新的Linux,而这个容器有一个旧的。我搜索了一下我的文件系统,发现linux工具附带了perf_4.9。我试过用它,到目前为止似乎效果不错。考虑到容器操作系统在3.10上,这不是一个很好的解决方案,但它现在已经可以正常工作了。
apt install linux-perf