Docker容器内部获取宿主机CPU、磁盘、网卡等信息
这里提供一个获取宿主机的思路,具体的代码根据需求自己实现
一、使用挂载宿主机目录方式获取宿主机信息
在启动容器的时候,挂载/proc/目录到指定目录,注意容器容也有proc目录,容器中不可再用/proc目录,然后根据cpuinfo或者其他文件自己提取数据再算出来,个人感觉比较麻烦
docker run -it -v /proc:/hostinfo/proc 镜像名
将/proc目录挂载到容器的/hostinfo/proc目录,然后读取文件来提取信息
如提取cpu使用率,参见:http://www.blogjava.net/fjzag/articles/317773.html
其他信息类似
二、在容器中使用ssh连接到主机获取主机信息
下面就以alpine系统为例介绍一下,当然其他centos,Ubuntu等也都类似
// An highlighted block
# apk update //进入容器后首先更新
# apk add openssh-client //安装ssh客户端,只需要客户端就可以连接其他主机,不需要安装server
# apk add sshpass //安装sshpass,ssh不能指定登录密码,需要sshpass协助
# sshpass -p "123456" ssh root@192.168.0.61 "df -h" //-p后面是ssh登录密码,“df -h“是需要执行的命令
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 11G 40G 21% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 9.4M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
/dev/mapper/centos-home 407G 56G 352G 14% /home
tmpfs 775M 0 775M 0% /run/user/0
overlay 407G 56G 352G 14% /home/docker_data/overlay2/8ed720bb28e71a9551d0571ded60cddcd469f61bd95b5f9b9a0a2e20e40ec6fa/merged
shm 64M 0 64M 0% /home/docker_data/containers/47a4d4dbe861507477ee11a5e65e9c073d2a2e336e63f5626de15c2fbf06160f/mounts/shm
overlay 407G 56G 352G 14% /home/docker_data/overlay2/3d994d13d288265c90f7aabc4d311db50ee8b53228ee2635ca43035e8ac41b7e/merged
shm 64M 0 64M 0% /home/docker_data/containers/185f01c2ad42b84a411b0c36e1d6f36ef94febb3ce0dfed0794a5f039a56ae98/mounts/shm
overlay 407G 56G 352G 14% /home/docker_data/overlay2/43a4cc3ef35ebe63fa79f7155e0ab50cb9b11aa452d11eb4377f1ab35175c8d9/merged
shm 64M 0 64M 0% /home/docker_data/containers/66d9f7dd4c73454d0c46197e2bbd55a6bda5bff354f1b2a9eff78abbe678652e/mounts/shm
overlay 407G 56G 352G 14% /home/docker_data/overlay2/068c6c7e432c1a234ef7e0dd6dc2e1bf4bdcf666be6e081cdde2cbe085a0c217/merged
shm 64M 0 64M 0% /home/docker_data/containers/5e46d1659245ef3a8c6c59a35cbcbd2cfeb4c4b432d5391721fd6aabc835339d/mounts/shm
overlay 407G 56G 352G 14% /home/docker_data/overlay2/2c5ebdd0afcc4b97fb159f81dd6adf753a5c3523b4ac4f59485c6a8105da06b6/merged
shm 64M 0 64M 0% /home/docker_data/containers/d7661a53104d6862e94e51df70fb6b80e4c22fe8e5952fd38e4727628d565299/mounts/shm