Docker – 访问主机/ proc
这是我在docker论坛中发布的一篇文章的副本。 因此,一旦解决这个问题,iam将closures这个/另一个。 但由于没有人在docker论坛的答案,我的问题仍然存在,生病后再次期待得到答案。
我想公开一个服务器监控应用程序作为docker集装箱。 我写的应用程序依靠/ proc来读取系统信息,如CPU利用率或磁盘统计信息。 因此,我必须将主机/ proc虚拟文件系统中提供的信息转发到我的docker集装箱。
所以我做了一个简单的图像(使用docker网站上的第一个或第二个介绍: 链接 ),并启动它:
docker run -v=/proc:/host/proc:ro -d hostfiletest
docker run -v = / proc:/ host / proc:ro -d hostfiletest假设正在运行的容器可以从/ host / proc中读取以获取有关主机系统的信息。
我启动了容器内的一个控制台来检查:
docker exec -it {one of the funny names the container get} bash
并检查了/ host / proc的内容。
最简单的方法是获取/ host / proc / sys / kernel / hostname的内容 – 这应该会产生vm iam的主机名。 但是我得到了容器的主机名,而/ host / proc / uptime让我正确地运行虚拟机。
我想念这里的东西吗? 也许有些概念?
在Linux 4.4.0-97-generic(VM)上运行的Docker版本17.05.0-ce,build 89658be
更新:
我发现了几篇文章,描述了如何使用上面提到的相同方法在一个包含内部运行特定的监视应用程序。
更新:
只是尝试使用现有的Ubuntu镜像 – 相同的行为。 运行映像特权和pid =主机没有帮助。
问候Peepe