如何让 cadvisor (Docker) 与 AWS/Debian 一起工作?

How can I get cadvisor (Docker) working with AWS/Debian?

我设置了一个 AWS 实例 (Debian),并在上面安装了 Docker。 我可以成功运行 hello-world 容器,并按照 Docker 安装验证中的建议运行 ubuntu。

我想运行 cadvisor。所以我运行了推荐的快速启动脚本:

sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest

这没有给我任何错误,但是当我执行 'sudo docker ps' 时什么也没有;就像它启动然后熄灭或以其他方式自行关闭。

我尝试在末尾添加“--logtostderr”以查看我能看到什么——结果发现:

I0108 19:19:55.308016 00001 storagedriver.go:89] Caching 60 recent stats in memory; using "" storage driver
I0108 19:19:55.308353 00001 manager.go:78] cAdvisor running in container: "/docker/e3b5ede6f6def6b36d7682814aefc2b414defaea065ccf977a1a2542a80c310c"
F0108 19:19:55.337891 00001 cadvisor.go:76] Failed to create a Container Manager: failed to get cache information for node 0: open /sys/devices/system/cpu/cpu1/cache: no such file or directory

我需要为 Debian 系统做一些不同的事情吗?

如果您注意到 docker 命令和错误,我们正在从主机系统明确挂载到 sys 目录中。 --volume=/sys:/sys:ro 并且错误是抱怨子目录 /sys/devices/system/cpu/cpu1/cache 中的文件。因此,如果 file/folder 在您的主机虚拟机中不存在,它将无法在 docker 中运行。

我已经测试了 ubuntu 和亚马逊标准 AMI,他们似乎提到了文件。我在标准 AMI 中看不到 debian,因此我没有简单的方法来测试 debian,但我怀疑您使用的映像缺少所需的内核模块或设置。为什么不使用标准的 Amazon AMI 之一?

我们修复了 cAdvisor 中的错误。最新版本的 cAdvisor 应该可以在 AWS 或任何地方与 Debian 一起正常工作。