官术网_书友最值得收藏!

Monitoring Docker containers

In this recipe, we will learn to monitor Docker containers.

How to do it…

Docker provides inbuilt monitoring with the docker stats command, which can be used to get a live stream of the resource utilization of Docker containers.

  1. To monitor multiple containers at once using their respective IDs or names, use this command:
    $ docker stats mysql f9617f4b716c
    

    Tip

    If you need to monitor all running containers, use the following command:

    $ docker stats $(dockerps -q)
    
  2. With docker logs, you can fetch logs of your application running inside a container. This can be used similarly to the tail -f command:
    $ docker logs -f ubuntu
    
  3. Docker also records state change events from containers. These events include start, stop, create, kill, and so on. You can get real-time events with docker events:
    $ docker events
    

    To get past events, use the --since flag with docker events:

    $ docker events --since '2015-11-01'
    
  4. You can also check the changes in the container filesystem with the docker diff command. This will list newly added (A), changed (C), or deleted (D) files.
    $ docker diff ubuntu
    
  5. Another useful command is docker top, which helps look inside a container. This commands displays the processes running inside a container:
    $ docker top ubuntu
    

How it works…

Docker provides various inbuilt commands to monitor containers and the processes running inside them. It uses native system constructs such as namespaces and cgroups. Most of these statistics are collected from the native system. Logs are directly collected from running processes.

Need something more, possibly a tool with graphical output? There are various such tools available. One well-known tool is cAdvisor by Google. You can run the tool itself as a Docker container, as follows:

docker run -d -p 8080:8080 --name cadvisor \
 --volume=/:/rootfs:ro \
 --volume=/var/run:/var/run:rw \
 --volume=/sys:/sys:ro \
 --volume=/var/lib/docker/:/var/lib/docker:ro \
google/cadvisor:latest

Once the container has been started, you can access the UI at your server domain or IP on port 8080 or any other port that you use. cAdvisor is able to monitor both LXC and Docker containers. In addition, it can report host system resources.

There's more…

Various external tools are available that provide monitoring and troubleshooting services. Sysdig is a similar command-line tool that can be used to monitor Linux systems and containers. Read some examples of using sysdig at https://github.com/draios/sysdig/wiki/Sysdig%20Examples.

Also, check out Sysdig Falco, an open source behavioral monitor with container support.

See also

主站蜘蛛池模板: 虞城县| 孝昌县| 准格尔旗| 西丰县| 新绛县| 灵石县| 栾城县| 麻阳| 开江县| 乐平市| 墨江| 台江县| 资源县| 廉江市| 寿宁县| 镇雄县| 惠安县| 任丘市| 昭觉县| 高碑店市| 环江| 土默特左旗| 桑植县| 吉林省| 贵州省| 庆安县| 西乌珠穆沁旗| 丽水市| 文成县| 博爱县| 合川市| 伊吾县| 克东县| 唐河县| 峡江县| 建宁县| 望奎县| 鄂尔多斯市| 扎鲁特旗| 乐昌市| 辽宁省|