赞
踩
docker stats [CONTAINER_NAME]
。这样就可以查看每个容器的CPU利用率、内存的使用量以及可用内存总量。请注意,如果你没有限制容器内存,那么该命令将显示您的主机的内存总量。但它并不意味着你的每个容器都能访问那么多的内存。另外,还可以看啊都容器通过网络发送和接收的数据总量。
$ docker stats determined_shockley determined_wozniak prickly_hypatia CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O determined_shockley 0.00% 884 KiB/1.961 GiB 0.04% 648 B/648 B determined_wozniak 0.00% 1.723 MiB/1.961 GiB 0.09% 1.266 KiB/648 B prickly_hypatia 0.00% 740 KiB/1.961 GiB 0.04% 1.898 KiB/648 B
/containers/[CONTAINER_NAME]
,其中
CONTAINER_NAME
是你想要统计的容器名称。你可以从
这里
看到一个容器stats请求的完整响应信息。在上述的例子中你会得到缓存、交换空间以及内存的详细信息。如果要了解什么是metrics,那么你就需要精读Docker文档的
Run Metrics部分
。
docker stats
命令和远程API来获取容器的状态信息。但是,如果你想要在图形界面中直接查看这些信息,那你就需要诸如
CAdvisor
这类的工具。CAdvisor提供了早
docker stats
命令所显示的数据的可视化界面。运行以下Docker命令,并在浏览器里访问
http://<your-hostname>:8080/
可以看到CAdvisor的界面。你将看到CPU的使用率、内存使用率、网络吞吐量以及磁盘空间利用率。然后,你可以通过点击在网页顶部的
Docker Containers
链接,然后选择某个容器来详细了解它的使用情况。
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
# account_key is the only required value account_key: YOUR_ACCOUNT_KEY hostname: web01-host display_name: web01 environment: production roles: web
docker run -d --name scout-agent \ -v /proc:/host/proc:ro \ -v /etc/mtab:/host/etc/mtab:ro \ -v /var/run/docker.sock:/host/var/run/docker.sock:ro \ -v `pwd`/scoutd.yml:/etc/scout/scoutd.yml \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup/ \ --net=host --privileged \ soutapp/docker-scout
docker run -d --privileged --name dd-agent \ -h `hostname` \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /proc/mounts:/host/proc/mounts:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY=YOUR_API_KEY datadog/docker-dd-agent \
{ "checks": { "load_docker_metrics": { "type": "metric", "command": "load-docker-metrics.sh", "subscribers": [ "docker" ], "interval": 10 } } }
http://YOUR_SERVER_IP:3000
来访问uchiwa界面。
docker run -d --name sensu-server \ -p 3000:3000 \ -p 4567:4567 \ -p 5671:5671 \ -p 15672:15672 \ -v $PWD/check-docker.json:/etc/sensu/conf.d/check-docker.json \ hiroakis/docker-sensu-server
#!/bin/bash set -e # Count all running containers running_containers=$(echo -e "GET /containers/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock \ | tail -n +5 \ | python -m json.tool \ | grep \"Id\" \ | wc -l) # Count all containers total_containers=$(echo -e "GET /containers/json?all=1 HTTP/1.0\r\n" | nc -U /var/run/docker.sock \ | tail -n +5 \ | python -m json.tool \ | grep \"Id\" \ | wc -l) # Count all images total_images=$(echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock \ | tail -n +5 \ | python -m json.tool \ | grep \"Id\" \ | wc -l) echo "docker.HOST_NAME.running_containers ${running_containers}" echo "docker.HOST_NAME.total_containers ${total_containers}" echo "docker.HOST_NAME.total_images ${total_images}" if [ ${running_containers} -lt 3 ]; then exit 1; fi
docker run -d --name sensu-client --privileged \ -v $PWD/load-docker-metrics.sh:/etc/sensu/plugins/load-docker-metrics.sh \ -v /var/run/docker.sock:/var/run/docker.sock \ usman/sensu-client SENSU_SERVER_IP RABIT_MQ_USER RABIT_MQ_PASSWORD CLIENT_NAME CLIENT_IP
田浩浩,USYD研究生,目前在珠海从事手机应用开发工作。业余时间专注Docker的学习与研究,希望通过DockOne把最新最优秀的译文贡献给大家,与读者一起畅游Docker的海洋。
http://dockone.io/article/397
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。